2013-05-31 2 views
0

У меня есть сценарий, который отправляет электронные письма с помощью phpmailer() с прикрепленным изображением, которое также отображается в теле письма. Приемники, которые используют Outlook или некоторые мобильные клиенты, сообщили, что у них есть проблемы с просмотром изображения в теле электронной почты. Я попытался проверить способ, которым thunderbird прикрепляет подпись. Из того, что я понял, изображение связано с его идентификатором вложения, но не отображается как вложение (я не ищу этого точного поведения, оно все равно может быть как вложение, но действительно нужно, чтобы оно отображалось в Outlook и мобильных клиентах).
Итак, мой вопрос заключается в том, как изменить мой скрипт так, чтобы мое изображение было прикреплено к электронной почте так же, как и thunderbird прикрепляет подпись, или есть стандарт или лучшая практика в этом?
Edit: код, используемый при отправке электронной почты скрипта:Отображать прикрепленное изображение в теле письма

$subject = 'Subject - '; 
$emails = get_emails() 
foreach ($emails as $email) { 
define("PHPMAILER",0); 
$message = $content; 
$path = 'xxx'; 
require_once ($path); 
$mailer = new PHPMailer(); 
$mailer->SMTPDebug = true; 
$mailer->IsSMTP(); 
$mailer->Host = 'xxx'; 
$mailer->SMTPAuth = true; 
$mailer->SMTPSecure = 'tls'; 
$mailer->Username = 'xxx'; 
$mailer->Password = 'xxx'; 
$mailer->FromName = 'xxx'; 
$mailer->From = 'xxx'; 
$mailer->AddAddress($email,"xxx"); 
$mailer->Subject = $subject; 
$mailer->IsHTML(true); 
//get the images that needs to be embedded 
$embeds = get_images($firma_id,0); 
if ($embeds == 0) {echo "No embeds";} else { 
    foreach ($embeds as $key => $value) { 
    $mailer->AddEmbeddedImage($value,"img".$key,"grafic_".$key.".png"); 
    } 
    $mailer->MsgHTML($message); 
    if (!$mailer->Send()) { 
    exit; 
    } 
} 
} 

и содержания выглядит следующим образом:

   <td style='font-family: Arial; font-size: 12px;'> 
      <img style='margin-right: 10px;' src='cid:img".$grafic."' alt='grafic".$grafic."' width='800' align='left'> 
     </td> 
+0

Показать код пожалуйста –

ответ

2

Вы делаете имя/идентификатор для данного изображения прикрепленного и называют, что в теге изображений на место (тело), ​​которое вы хотите показать. Код будет выглядеть следующим образом:

$mail->AddEmbeddedImage('img/image1.jpg', 'logo'); 

<img src='cid:logo\' /> 
Смежные вопросы