2011-03-23 174 views
0

,看來我不能讓任何郵件客戶端進行解碼的base64部分。PHPMailer的附件:使用的PHPMailer的AddAttachment方法對PHP 5的郵件客戶端不解碼

實際上,在接收電子郵件雷鳥,而不是我的附件「asyF074.tmp」,我發現附有「Part1.2」文件,其中包含節頭(

name="asyF074.tmp" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="asyF074.tmp" 

)接着是文件內容的base64表示。

我無法找出與附件腳麻:

$filename = tempnam ("" , "asy"); 

$f = fopen($filename, "wb"); 
fwrite($f, $tbl, strlen($tbl)); 
fclose($f); 

/* 
* Send mail... 
*/ 
$mail = new phpmailer(); 
$mail->IsSMTP(); 
$mail->From = "[email protected]" . $domain; 
$mail->FromName = "Andrew"; 
$mail->Host = $mail_host; 
$mail->Port = $mail_port; 
$mail->AddAddress($mail_destination); 
$mail->IsHTML(true);  
$mail->Subject = "2011 Polls"; 
$mail->Body = $msg; 
$mail->AddAttachment($filename, "2011-Polls.xls", "quoted-printable", "application/vnd.ms-excel"); 
$mail->Send(); // send message 

unlink($filename); 

而且,即使我明確地設置編碼爲「引用可打印」,附件總是編碼爲Base64。

謝謝。

回答

-1

...找到了!我不知道爲什麼,但這是由於我使用的PHPMailer版本(我知道你在想什麼:「這傢伙吹了以前的下載」,但我可以向你保證我下載了正確的lib)。

我重新下載(2天后)的same library對PHP 5,現在它的工作。

沒得檢查的時間,但有一些錯誤進入庫代碼。

+1

這真的不是一個有用的自我回答 – HorusKol 2011-12-21 03:59:39

0

這可能不是回答你的問題,但我建議你從Zend_Framework嘗試使用Zend_Mail中像這些問題我從來沒有說。