我正在嘗試創建一個PHP函數來發送帶附件的SMTP電子郵件。我很難嘗試創建MIME標題,因爲我希望正文包含HTM格式的文本和要附加的文件。我使用PHP的一個非常舊的版本(4.3.8),這是唯一的方法這是工作。試過PEAR,但不會正確驗證SMTP。帶附件的SMTP MIME標頭
這就是我到目前爲止: 我編輯了這段代碼,因爲現在我得到的消息正確,但文件已損壞。我將文件更改爲文本文件,並開始正常,但出現很多垃圾文本。
$newLine = "\r\n";
$attachment="myFile.zip";
$message = "<br><h1><center>TEST MESSAGE</center></h1>" ;
//Body
$headers .= "Content-Type: multipart/mixed;" . $newLine;
$headers .= " boundary=\"_e9e06aa5-1550-464d-ace4-e85b575d1899_\"" . $newLine . $newLine;
$newLine . $newLine;
$headers .= "--_e9e06aa5-1550-464d-ace4-e85b575d1899_" . $newLine;
$headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine;
$headers .= "Content-Transfer-Encoding: quoted-printable" . $newLine;
$headers .= " boundary=\"_7fdd1316-6f68-41bb-93f7-134933fc9aad_\"" . $newLine . $newLine;
$headers .= $message . $newLine;
//$headers .= "--_7fdd1316-6f68-41bb-93f7-134933fc9aad_--" . $newLine; // If I leave this line it appears in the end of the message area.
//Attachment
$headers .= "--_e9e06aa5-1550-464d-ace4-e85b575d1899_" . $newLine;
$headers .= "Content-Transfer-Encoding: base64" . $newLine;
$headers .= "Content-Type: text/plain;" . $newLine;
$headers .= "Content-Disposition: attachment;" . $newLine;
$headers .= " filename=" . $attachment . $newLine . $newLine;
$handle = fopen($attachment, "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, filesize($attachment));
}
fclose($handle);
$contents = base64_encode($contents);
$headers .= $contents . $newLine;
$headers .= "--_e9e06aa5-1550-464d-ace4-e85b575d1899_--" . $newLine;
phpmailer的要求之一是它需要PHP版本5或更高版本。可悲的是,我不能在4.3.8上運行的時候對服務器進行任何更新。 – Rick
**「有PHP4的版本。」**鏈接爲你 - http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/ – Peter
使用此代碼http://coffeeandpaste.blogspot。 com/2009/02/phpmailer-smtp-authentication.html,因爲我的SMTP已通過身份驗證,但無法連接。 – Rick