一部のメールクライアントでは、sendmailからqmailに切り替えた後、PHP mail()から空のCSV添付ファイルが表示されます。

StackOverflow https://stackoverflow.com/questions/2647196

  •  27-09-2019
  •  | 
  •  

質問

以下のコードは、何年もの間、印刷物のフルフィルメント担当者にCSVを送信してきました。週の初めに、実行したいprocmailレシピに関係する理由で、sysadminがsendmailからqmailに切り替えました。

偶然ではないかもしれませんが、メールでCCをしている他の人がレコードを見たとしても、フルフィルメントの人々が空のCSVを見ていると聞き始めました。問題のある人々は添付ファイルを見てそれを開くことができましたが、彼らのMUIはそれを131バイトまたは0バイトとしてリストしていました。

同じ結果でYahooアドレスへの送信を開始しました。ただし、Gmailは正しい行の添付ファイルを認識します。これはすべて1つのCCされた電子メールであり、メールクライアントによって結果が異なります。

viのコードを調べて、^ M文字やその他の制御文字のジャンクがないことを確認しました。

これを見た人はいますか?どんな提案でも大歓迎です!

ありがとう! ジェネラコディセタグプレ

役に立ちましたか?

解決

これはCR / LFの問題だと思います。これは、約3年間phpで既知のバグであり、私が知る限り、これまで修正されていません。

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

生成された電子メールは無効です(説明はここにあります: http:// cr.yp.to / docs / smtplf.html )、RFCに準拠していない改行形式を使用しているため。sendmailやpostfixなどの他のMTAは、この問題を自動的に修正します。qmailはしません。

次のいずれかを実行できます:php( lol )を使用して正しいメールを作成するか、qmail-administratorにQmailScanner( http://qmail-scanner.sourceforge.net/ )、これもこの仕事をしています。

最善の解決策は、phpをアンインストールし、将来的にperlを使用することです duck ;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top