Short story
Ben bir. Qmail dosyası kullanarak gelen postaları filtreleme bir PHP komut dosyası var. Senaryo bana komut daha fazla işleme durması gerekir. Qmail hatları bir nokta-qmail çıkış kodu 99 döndüğünde bildiğim kadarıyla, son. Qmail satırı kimlikam olmamalı, gayet iyi çalışıyor ve günlükleri tüm etkinliğini ama.
Long story:
Ben Linux 2.6.18-4-686 altında Plesk Panel 9.3.0 sürümünü kullanıyorum.
Benim PHP CLI sürümü (: 24 Kasım 2009 11:14:47) inşa 5.2.0-8 + etch16 (cli) 'dir.
SpamAssassin, Dr Web ve zen.spamhaus.org ve bunların sonuçlarından memnun değil, ben tüm gelen postaları filtreleme için kendi PHP komut dosyası oluşturmak için karar verdi.
(Bir kenara "bu adam tekerleği yenkimliken icat" düşündüğünüzden sizin kim bazıları için: bu kara kutu modelleri önler, çünkü ben şahsen benim müşterileri tanımak ve onların özel ihtiyaçlarını yüzden, testlerin binlerce sonra, bu en iyi seçenek olduğu ortaya çıktı ve bana da) diğer serin işlevselliği sunucu kaynaklarını ve açılan kapılar kurtararak, kapsamlı bir şekilde süreci kontrol etmenizi sağlar.
Ancak ben sunucuda komut dosyasını yüklerken bir sabit zaman yaşıyorum.
QMailFilter benim senaryom ve http://titanpad.com/1IFDj1jvB0 de görebilirsiniz
. Ben varolan qmail dosyası /var/qmail/mailnames/customerdomain.com/username/.qmail
edilecek düzenlenebilir:
|/var/my/qmailfilter/qmailfilter
|/usr/bin/deliverquota ./Maildir
QMailFilter PHP komut dosyası (sonrakine geçmeden için mesaj ve 0 atılması için 99. mesaj teslim qmail hattı) yürütür ve günlükleri mükemmel ben bu kullanıcı hesabı için bir mesaj gönderdiğinizde, çıkış kodu döndürür.
Turns out that it delivers the message irrespectively of the many exit codes I've already tried.
Betik (line 174 bakınız) önce veya sonra herhangi bir boşluk karakterleri içermeyen bir metin çıkış kodu çıkarır. I güvenilir exit($code)
, print $code
, echo($code)
ve hatta file_put_contents("php://stdout", $code)
ve ayrıca exit(chr($code))
.
dot-qmail
kodları:
0 - Başarı (. Sonraki qmail satıra gkimlikin)
99 - Başarı ve iptal (sonraki satırlara kimlikam etmiyoruz)
100 - kalıcı hata (sıçrama)
111 - yumuşak hata (daha sonra yenkimliken)
Kaynak: Büyük Qmail Resim.
Diğer girişimler / deneyler:
shebang hattı (
#!/usr/bin/php
) çıkarılır ve|php -q /var/my/qmailfilter/qmailfilter
siz.qmail
hattı değiştirildiWhitespacing için senaryonun son satırı kontrol
Dot-qmail adam dosyayı ama kesin bir şey okumak bulundu
. Katılım qmail hatları:
| / Var / benim / QMailFilter / QMailFilter |. / Usr / bin / deliverquota / Maildir
Bu durumda herhangi bir başlık, konu veya mesaj gövdesi olmaksızın sadece doğru dönüş kodu olan bir mesaj aldım.
Çıkış yorumladı (#), ikinci
.qmail
hattı, ancak mesajları her türlü alamıyorsunuz./var/qmail/control/defaultdelivery
ilk satırı eklemek için düzenlenebilir:|php /var/my/qmailfilter/qmailfilter |/usr/bin/deliverquota ./Maildir
ve adını kullanıcı .qmail
dosyası _qmail
. Aynı sonuçlar.
Ben PHP komut dosyası aracılığıyla mesaj teslim ve çıkış kodları unutmalı mıyım?
Eğer öyleyse, bu Maildir / yeni kullanıcıya mesajı kaydetmek için yeterli mi?
Eğer öyleyse, mesajı dosya önemlkimlikir?
Herhangi bir fikir takdir edilecektir. Çok teşekkürler!
GÜNCELLEME: ihtiyaç o sizin için, ben icebex.com final komut yayınlanan QMailFilter yırtmaç