通过PHPMailer发送带有URL附件的电子邮件

时间:2015-02-23 11:59:24

标签: php phpmailer

我正在使用PHPMailer。我必须发送两个附件,两个都是链接(一个是base64图像,第二个是url)。

// Variables with images
$croped_img = 'data:image/jpg;base64,/extreme_long_code_here';
$photo_thumbnail_url = 'http://t2.ftcdn.net/jpg/00/76/44/75/400_F_76447580_gOWAV0P8APW0iC51OsW5huD6qoiEsh7O.jpg';

// PHPMailer
$mail->addAttachment('$photo_thumbnail_url', 'selected.jpg');
$mail->addAttachment('$croped_img', 'croped_img.jpg');

PHPMailer的工作原理是因为如果我以该形式发送电子邮件,附件就不会出现。 但如果我链接本地图像,例如'images/abc.jpg'然后他们来了。

我应该使用哪些php函数将变量作为电子邮件附件发送?

2 个答案:

答案 0 :(得分:2)

与往常一样,请确保您使用的是最新版本的PHPMailer。

您需要使用addStringAttachment,文档here

$photo_thumbnail_url = 'http://t2.ftcdn.net/jpg/00/76/44/75/400_F_76447580_gOWAV0P8APW0iC51OsW5huD6qoiEsh7O.jpg';
$mail->addStringAttachment(file_get_contents($photo_thumbnail_url), 'selected.jpg');

msgHTML功能自动处理data个网址,将其转换为具有自动cid值的嵌入图片,因此,如果您的图片已嵌入HTML中,则不要必须做任何事情才能发挥作用。

如果您想自己处理数据网址转换,可以查看其工作原理here

答案 1 :(得分:0)

确保您的PHPMailer库是最新的!

然后尝试这个,

$mail->AddEmbeddedImage($photo_thumbnail_url, 'selected.jpg');
$mail->AddEmbeddedImage($croped_img, 'croped_img.jpg');