带内嵌图片和pdf附件的phpmailer电子邮件
我正在使用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文件和两个嵌入图像?
我发现这个补丁: http://sourceforge.net/tracker/index.php?func=detail&aid=3151482&group_id=26031&atid=385707
这应该解决的 “问题”。与此同时,我正在迁移到迅捷邮件;事实证明,我有一些很不错的功能,比如日志记录选项和'洪水'控制。
我在这里遇到了同样的问题。 您试图使用哪个电子邮件客户端?我注意到,使用网络邮件(RoudCube),Gmail网络邮件,Outlook 2011 Mac和Lotus Notes 8,嵌入式图像显示正确,所有附件也都正确显示。显然,问题发生在Apple Mail和Thunderbird上。 对于后面的两个客户端,我试图打开原始消息源,我可以正确地看到所有附件。但电子邮件似乎根本没有附件(当然嵌入图片除外)。
感谢您的帮助, 最好的问候。
我确实使用苹果邮件和雷鸟来查看发送的邮件。所以它似乎是一个phpmailer的bug .... – stUrb 2012-03-05 18:05:50
嗯,这不完全是PHPMailer的一个错误。当发送带有附件的电子邮件(我的意思是正确的,没有嵌入的图像)时,电子邮件作为“多部分/混合”(EMAIL的MIME类型,而不是例如text/html的文本消息的MIME类型)发送。那么,如果有一个或多个嵌入式图像以及其他“正确的”附件,则EMAIL mimetype会变成“多部分/相关”,它显然由某些电子邮件客户端(例如Apple Mail和Thunderbird)正确呈现。建议将附件保留在网络上并放置一个链接,将它们下载到电子邮件中。 – 2012-03-06 17:03:55
感谢您的解释。把“适当的”附件,在网络上销售条件的pdf不是一种选择;因为合法的方式。我在sourceforg上发现了一个工作,并会在短短一秒内将其作为答案发布。 – stUrb 2012-03-07 09:00:08
为了记录,这在多年前PHPMailer中得到修复。 – Synchro 2015-03-24 11:12:47
备案:此答案于2012年3月完成;) – stUrb 2015-03-25 08:34:16