簡體   English   中英

PHP email 附件

[英]PHP email attachments

我正在嘗試發送帶有多個附件的電子郵件。

這是一個例子:
$uid = md5(uniqid(time()));
$header = "From: Test <test@test.com>\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״¶',

可能是什么問題呢?

謝謝。

一些問題:

  • 邊界前應該只有一個新行。 你有 2 個。
  • 您應該只在最后一個邊界之后有 2 個破折號。
  • 有兩個地方Content-Transfer-Encoding之前需要換行。
  • 可能忘記了 base64 對您的文件進行編碼。
  • 您的代碼看起來像是一些糟糕的復制粘貼的結果。
  • 也許其他。

正如 El Yobo 在評論中所說,也許您應該嘗試為此使用庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM