Etiket arşivi: mehmetmutlu

Merak Mail Server’de Mail Gönderim Limitleri

El ile tek tek tüm userlere limit belirliyebiliriz ancak otomatik sabit bir değer tanımlıyamıyoruz ancak

mysql trigger kullanarak bunu sabitleştirmek mümkün…

Öncelikle Global ayarlardan domain limitlendirme ve user limitlendirme özelliğini açıyoruz

ardından merak mail in bağlı oldugu veritabanına gidip aşağıdaki sql konudu çalıştırıyoruz. (mysql5.0  ve üzeri)

Domain limitlendirme trigger’i

DROP TRIGGER IF EXISTS ‘update_domain';
DROP TRIGGER IF EXISTS ‘insert_domain';

CREATE TRIGGER ‘update_domain’ BEFORE UPDATE ON ‘domains’
FOR EACH ROW BEGIN
IF new.D_NumberLimit = 0 OR new.D_NumberLimit = 1000 THEN
SET new.D_NumberLimit = 1000;
END IF;
END;

CREATE TRIGGER ‘insert_domain’ BEFORE INSERT ON ‘domains’
FOR EACH ROW BEGIN
IF new.D_NumberLimit = 0 OR new.D_NumberLimit = 1000 THEN
SET new.D_NumberLimit = 1000;
END IF;
END;

User leri limitlendirme triggeri

DROP TRIGGER IF EXISTS ‘update_user';
DROP TRIGGER IF EXISTS ‘insert_user';

CREATE TRIGGER ‘update_user’ BEFORE UPDATE ON ‘users’
FOR EACH ROW BEGIN
IF new.U_NumberSendLimit = 0 OR new.U_NumberSendLimit = 250 THEN
SET new.U_NumberSendLimit = 250;
END IF;
END;

CREATE TRIGGER ‘insert_user’ BEFORE INSERT ON ‘users’
FOR EACH ROW BEGIN
IF new.U_NumberSendLimit = 0 OR new.U_NumberSendLimit = 250 THEN
SET new.U_NumberSendLimit = 250;
END IF;
END;

Bu 2 adet trigger i merak mail mysql import ettikden sonra domain bazlı 100 user bazlı 250ser adet limit olacak bu andan itibaren tüm güncelleme ve ekleme işlemlerinde aktif olacak not: triggerde merak mail de 0 değer girişmiş ve otomatik 250 user için domain içinde 1000 e değiştirecek kendimiz farklı bir limit istiyor isek 100, 500, 1500 vs o zaman trigger pasif olacaktır.

MySQL de sütun içerisindeki JSON Array verisi içerisinde arama yapmak?

<?php
$name = 7; /*aranacak array verisinin değerleri*/
$uzunluk = strlen($name)+4;/*$name değişkeninin satır uzunluğu ve aranacak kelime olan “$name”:” şeklindeki satırın toplam uzunluğu, $name değişkenini atarsak “”:” kalıyor bununda toplam uzunluğu 4′ tür*/
$sql = ‘SELECT * FROM ‘tablo’ WHERE SUBSTRING(‘sutunadi’, INSTR(‘sutunadi’, ‘”$name”:”‘)+$uzunluk, (LOCATE(‘”‘, ‘sutunadi’, INSTR(‘sutunadi’, ‘”$name”:”‘)+$uzunluk)-(
INSTR(‘sutunadi’, ‘”$name”:”‘)+$uzunluk)))<=10000000‘;
/* böylece ‘tablo’ içerisinde ‘sutunadi’ sütununda “$name”:”*” * yerine olan kısmın 10000000 den küçük olduğu veriler listelencektir. */
?>