1

我正在创建一个电子邮件服务,它使用 phpmail 向不同的人发送不同的图像。我可以根据需要发送邮件和附件,但是当涉及到在邮件正文中动态添加嵌入图像时。我将无法取得成功。

<?php

require_once('class.phpmailer.php');

// multiple recipients
$to = $arr['Contact.Email']; // note the comma

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

$mail->IsSMTP(); // telling the class to use SMTP
try{
  $mail->SetFrom($arr['Contact.Email'], 'First Last');
  $mail->AddAddress($arr['Contact.Email'], 'John Doe');
  $mail->Subject = 'PHPMailer Test';

  $mail->AddEmbeddedImage($arr['ContactId'].'.png', 'my-attach');

  $mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src=cid:my-attach\'> Here is an image!';

  $mail->AddAttachment($arr['ContactId'].".png"); // this is a regular attachment (Not inline)

  $mail->Send();
  echo "Message Sent OK<p></p>\n";
} 

catch (phpmailerException $e) {
    echo $e->errorMessage(); //Pretty error messages from PHPMailer
}

catch (Exception $e) {
    echo $e->getMessage(); 
}
?>

我可以嵌入一张图片,但是当我尝试为不同的用户发送不同的图片时出现错误。我到处搜索,但没有得到任何令人满意的答案。任何帮助将不胜感激。

4

1 回答 1

0

你有一个错误:

$mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src=cid:my-attach\'> Here is an image!';

您需要在附加后跳过\' 。

您还需要通过添加将消息设置为 html 格式:

$mail->IsHTML(true);

在此处阅读有关在文档中嵌入图像的更多信息:http: //phpmailer.worxware.com/ ?pg=tutorial

于 2013-09-13T09:09:37.693 回答