Я использую PHPMailer для отправки некоторых сообщений в своем интре anet, проблема возникает, когда я пытаюсь отправить изображения в теле письма, если я просто отправляю изображения в виде вложения, все идет гладко, но когда Я пытаюсь отправить изображения в теле письма. Gmail (и просто Gmail) игнорирует изображение, даже если оно показывает сообщение.
Справа - gmail, затемненная дело в том, что компания lo go добавлена с помощью функции AddEmbeddedImage ()
Еще более странно то, что я отправляю встроенное изображение в заголовок письма, и это выглядит нормально.
Что я могу сделать, чтобы появлялись изображения?
Это код:
public function enviaEmail($email = "", $subject, $body, $nomes_anexos, $tipo_noticia = false) {
global $config;
if($tipo_noticia && ($tipo_noticia == 'company' || $tipo_noticia == 'company')){
$this->mail->FromName = $config['email_fromname_company'];
} else {
$this->mail->FromName = $config['email_fromname'];
}
$this->mail->From = $config['email_from'];
$header = $this->includeHeader($subject);
$footer = $this->includeFooter();
if(empty($email)){
$this->logger->log("Email em branco.");
return false;
}
$this->mail->ClearAllRecipients();
$this->mail->AddAddress($email);
$this->mail->Subject = $subject;
$this->mail->Body = $header.$body.$footer;
$this->mail->AltBody = strip_tags($body).$footer;
//THIS WORKS
if($tipo_noticia && ($tipo_noticia == 'company' || $tipo_noticia == 'mensagem_company')){
$this->mail->AddEmbeddedImage(dirname(__FILE__).'/../../public/img/company.png', 'logo', 'company.png');
} else {
$this->mail->AddEmbeddedImage(dirname(__FILE__).'/../../public/img/logo_local_novo.png', 'logo', 'local.png');
}
if(!empty($nomes_anexos)){
foreach($nomes_anexos as $an){
$nome_anexo_final = preg_replace("/^(.*)?-/","", $an);
$this->mail->AddAttachment(PATH_ANEXOS."/".$an, urldecode($nome_anexo_final));
}
}
if(!$this->mail->Send()) {
$this->logger->log("Erro ao enviar e-mail '$subject' para '$email': ". $this->mail->ErrorInfo);
return false;
}
return true;
}