2011-06-03 14 views
0

複数の添付ファイルを含む電子メールを送信しようとしています。PHP電子メールの添付ファイル

これは一例です:
$uid = md5(uniqid(time()));
$header = "From: Test <[email protected]>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"" . $uid . "\"\r\n\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= "Test Email\r\n\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-Type: text/x-csv; name=\"1.csv\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"1.csv\"\r\n\r\n";
$header .= $csvfile1 . "\r\n\r\n";
$header .= "--" . $uid . "--";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= "Test Email\r\n\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-Type: text/x-csv; name=\"2.csv\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"2.csv\"\r\n\r\n";
$header .= $csvfile2 . "\r\n\r\n";
$header .= "--" . $uid . "--";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= "Test Email\r\n\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-Type: text/x-csv; name=\"3.csv\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"3.csv\"\r\n\r\n";
$header .= $csvfile3 . "\r\n\r\n";
$header .= "--" . $uid . "--";

そして私は、CSVファイルの最後に、このような何かいくつかの奇妙な文字を取得します:
w־סֽד·ֽסמ׳fק־ןo,
‰z{­©}ךֺxn+¢”j״¶'Eט²¶*Jײֻrֵz°¶+·$j״¶'5ל†·u+¶+‰ֻ{²װj״¶',

何の問題である可能性がありましたか?

ありがとうございました。

+3

車輪の再構成を避け、これを処理する[phpmailer](http://sourceforge.net/projects/phpmailer)のようなものを使用すると、あなたの人生が楽になるかもしれません。 –

+0

'$ header'の内容を出力しようとしましたか?デバッグするのが簡単になり、いくつかの場所でいくつか余分な行があり、他の行には行がないことがわかります。 –

答えて

1

いくつかの問題:

  • 境界の前に一つだけの新しい行があるはずです。あなたには2があります。
  • 最後の境界線の後に2つのダッシュを付ける必要があります。
  • Content-Transfer-Encodingには新しい行が必要な場所が2つあります。
  • は、ファイルをbase64でエンコードするのを忘れています。
  • あなたのコードは、ひどいコピー貼り付けの結果のようです。
  • その他の可能性があります。

El Yoboがコメントで言ったように、多分あなたはこのためにライブラリを使ってみるべきです。

関連する問題