Bazı posta istemcileri Qmail ile sendmail den anahtarı sonra) (PHP postadaki boş CSV eki görmek

1 Cevap php

Aşağıdaki kod yıldır bizim baskı yerine getirilmesi millet CSV'leri gönderme olmuştur. Haftanın başında sysadmin biz koşmak istiyoruz procmail'e tarifleri ile yapmak zorunda nedenlerle Qmail ile sendmail geçti.

Muhtemelen tesadüfen değil biz başlayarak diğerleri kayıtlarını gördüm postada CC olarak bile yerine getirilmesi millet boş CSV'leri görmeye olduğunu duymaya başladık. Konu ile millet eki görmeye ve açmak olabilir ama onların MUI 131 bayt veya sıfır bayt olarak listeleme oldu.

Biz aynı sonuçları ile bir Yahoo adrese göndermeye başladı. Ancak Gmail doğru satırlarla eki görür. Bu farklı sonuçlar posta istemcileri bağlı olan tek bir CC olarak e-posta olduğunu unutmamanız gerekir.

Ben vi kod üzerinden gitti ve hiçbir ^ M karakter veya diğer kontrol karakteri önemsiz vardı emin yaptık.

Herkes önce gördünüz mü? Herhangi bir öneriniz en hoş geldiniz!

Teşekkürler!

$message = "Here is the file (comma-separated values) of addresses for\n";
$message .= $pm_row['title'] . " Requests ($now_YmdHMS).\n\n";
$data_email = $pm_row['fulfillment_data_email'];
$data_email_cc = "$pm_row[fulfillment_data_email_cc],$developer_email";
$subject = $pm_row['title'] . " Requests ($now_YmdHMS)";
$random_hash = md5(date('r', time()));
$headers = "From: XXX <tourism@xxx.org>\r\nReply-To: tourism@xxx.org\r\nCc:$data_email_cc"; 
$headers .= "\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$attachment = chunk_split(base64_encode(file_get_contents($filename)));
$output = "
--PHP-mixed-$random_hash; 
Content-Type: multipart/alternative; boundary='PHP-alt-$random_hash'
--PHP-alt-$random_hash
Content-Type: text/plain; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit

$message

--PHP-alt-$random_hash 
Content-Type: text/html; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit

$message

--PHP-alt-$random_hash--

--PHP-mixed-$random_hash
Content-Type: application/zip; name=$now_YmdHMS.$pm_row[handle].csv
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 

$attachment
--PHP-mixed-$random_hash--";

mail($data_email, $subject, $output, $headers);

1 Cevap

Ben bilinen yaklaşık üç yıldır php Bug ve-bildiğim kadarıyla olarak biliyorum-gelmiştir bugüne kadar sabit değil bir CR / LF sorun olduğunu düşünüyorum:

http://bugs.php.net/bug.php?id=15841

Oluşturulan E-posta (açıklama burada bulunabilir: http://cr.yp.to/docs/smtplf.html) geçerli değil nedeniyle olmayan bir RFC uyumlu linebreak-formatını kullanarak. Diğer MTA otomatik olarak sendmail ve postfix doğru bu sorun var gibi; qmail değil.

Sen ya: php ile doğru postalar (lol) yazmak, ya da bu işi yapıyor QmailScanner (http://qmail-scanner.sourceforge.net/), kullanmak için qmail-yöneticinize sorun.

En iyi çözüm php kaldırmanız ve gelecekte perl kullanırsanız duck ;) olacaktır