duanhunlou7051
2015-02-23 11:59
浏览 135
已采纳

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

I'm using PHPMailer. I have to send two attachments and both are links (one is base64 image and the second one is 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 works because if I send e-mail in that form, attachments do not come. But if I link local image e.g. 'images/abc.jpg' then they comes.

What php functions should I use to send my variables as e-mail attachments?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dos49618 2015-02-23 13:59
    已采纳

    As always, make sure you're using a recent version of PHPMailer.

    You need to use addStringAttachment, docs 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');
    

    The msgHTML function handles data URLs automatically, converting them to embedded images with automatic cid values, so if your image is already embedded in your HTML, you don't have to do anything for it to work.

    If you want to handle data URL conversion yourself, you can see how it works here.

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dongzongzhi6953 2015-02-23 13:12

    Make SURE that your PHPMailer library is up-to-date!

    and then try this one,

    $mail->AddEmbeddedImage($photo_thumbnail_url, 'selected.jpg');
    $mail->AddEmbeddedImage($croped_img, 'croped_img.jpg');
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题