2012-03-05 153 views
0

我正在使用phpmailer庫,它的工作原理類似於魅力。雖然有一件事情是正確的,並想知道是否有人可以幫助我。帶內嵌圖片和pdf附件的phpmailer電子郵件

我有一個帶有兩個內嵌嵌入式圖像的電子郵件模板。發送郵件的工作非常完美,圖像正在顯示和附加。 這是代碼:

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch 

try { 
$mail->IsHTML(true); 
$mail->AddAddress($a); 
$mail->Subject = $s; 

$mail->AddEmbeddedImage(PATH . '_mail/mail_cursus.jpg', 'kop', 'mail_cursus.jpg'); 
$mail->AddEmbeddedImage(PATH . '_mail/mail_logo.jpg', 'logo', 'logo.jpg'); 


$m = file_get_contents(PATH . '_mail/mail_basis.html'); 
$m = str_replace('[[bodyTekst]]',$body, $m); 

$mail->Body = $m; 
$mail->Send(); 


} catch (phpmailerException $e) { 
    zis_log($e->errorMessage()); 
    return $e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
    zis_log($e->getMessage()); 
    return $e->getMessage(); //Boring error messages from anything else! 
} 

但是當我添加$mail->AddAttachment(PATH . '_mail/Conditions.pdf')的PDF不會得到重視。它不會拋出異常,並且郵件正在發送。即使給出可選參數似乎也沒有辦法。

如何附加PDF文件和兩個嵌入圖像?

回答

1

我在這裏遇到了同樣的問題。 您試圖使用哪個電子郵件客戶端?我注意到,使用網絡郵件(RoudCube),Gmail網絡郵件,Outlook 2011 Mac和Lotus Notes 8,嵌入式圖像顯示正確,所有附件也都正確顯示。顯然,問題發生在Apple Mail和Thunderbird上。 對於後面的兩個客戶端,我試圖打開原始消息源,我可以正確地看到所有附件。但電子郵件似乎根本沒有附件(當然嵌入圖片除外)。

感謝您的幫助, 最好的問候。

+0

我確實使用蘋果郵件和雷鳥來查看發送的郵件。所以它似乎是一個phpmailer的bug .... – stUrb 2012-03-05 18:05:50

+1

嗯,這不完全是PHPMailer的一個錯誤。當發送帶有附件的電子郵件(我的意思是正確的,沒有嵌入的圖像)時,電子郵件作爲「多部分/混合」(EMAIL的MIME類型,而不是例如text/html的文本消息的MIME類型)發送。那麼,如果有一個或多個嵌入式圖像以及其他「正確的」附件,則EMAIL mimetype會變成「多部分/相關」,它顯然由某些電子郵件客戶端(例如Apple Mail和Thunderbird)正確呈現。建議將附件保留在網絡上並放置一個鏈接,將它們下載到電子郵件中。 – 2012-03-06 17:03:55

+0

感謝您的解釋。把「適當的」附件,在網絡上銷售條件的pdf不是一種選擇;因爲合法的方式。我在sourceforg上發現了一個工作,並會在短短一秒內將其作爲答案發布。 – stUrb 2012-03-07 09:00:08