Can';t通过PHPMailer向gmail发送图像
我正在使用PHPMailer在我的内部网中发送一些消息,当我尝试在电子邮件正文中发送图像时会出现问题,如果我只是将图像作为附件发送,一切都会顺利进行,但当我尝试在邮件正文中发送图像时,Gmail(仅Gmail)会忽略图像,即使它显示了消息 更奇怪的是,我将一个嵌入的图像发送到邮件的标题,而这一个图像显示正常 如何才能使图像显示 代码如下:Can';t通过PHPMailer向gmail发送图像,php,gmail,phpmailer,Php,Gmail,Phpmailer,我正在使用PHPMailer在我的内部网中发送一些消息,当我尝试在电子邮件正文中发送图像时会出现问题,如果我只是将图像作为附件发送,一切都会顺利进行,但当我尝试在邮件正文中发送图像时,Gmail(仅Gmail)会忽略图像,即使它显示了消息 更奇怪的是,我将一个嵌入的图像发送到邮件的标题,而这一个图像显示正常 如何才能使图像显示 代码如下: public function enviaEmail($email = "", $subject, $body, $nomes_anexos, $tipo_
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;
}
因此,您说当您尝试将图像嵌入到
$body
中时,图像不会显示,但当您将其放置在$header
中时,图像会显示吗?那么,您可能应该向我们展示它们到底包含了什么。当我使用$this->mail->AddAttachment()函数时,图像显示了这一点,但当它添加到正文中时,它并没有向我们显示您如何在正文中引用它。我通过一个表单收到$body,我唯一更改它的时候是这样做的:$body=str_replace(“',“‘”,$params['body'];AddEmbeddedImage
将图像数据添加到邮件中,这样您就可以在HTML代码中引用图像,使其显示在特定位置。如果您实际上没有这样做,那么您也不会期望看到任何东西。