Can';t通过PHPMailer向gmail发送图像

Can';t通过PHPMailer向gmail发送图像,php,gmail,phpmailer,Php,Gmail,Phpmailer,我正在使用PHPMailer在我的内部网中发送一些消息,当我尝试在电子邮件正文中发送图像时会出现问题,如果我只是将图像作为附件发送,一切都会顺利进行,但当我尝试在邮件正文中发送图像时,Gmail(仅Gmail)会忽略图像,即使它显示了消息 更奇怪的是,我将一个嵌入的图像发送到邮件的标题,而这一个图像显示正常 如何才能使图像显示 代码如下: public function enviaEmail($email = "", $subject, $body, $nomes_anexos, $tipo_

我正在使用PHPMailer在我的内部网中发送一些消息,当我尝试在电子邮件正文中发送图像时会出现问题,如果我只是将图像作为附件发送,一切都会顺利进行,但当我尝试在邮件正文中发送图像时,Gmail(仅Gmail)会忽略图像,即使它显示了消息

更奇怪的是,我将一个嵌入的图像发送到邮件的标题,而这一个图像显示正常

如何才能使图像显示

代码如下:

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代码中引用图像,使其显示在特定位置。如果您实际上没有这样做,那么您也不会期望看到任何东西。