代码之家  ›  专栏  ›  技术社区  ›  Aie_MAie

PHPMailer,无法发送带有或不带有附件的svg img

  •  0
  • Aie_MAie  · 技术社区  · 2 年前

    我的邮件就是这样定义的

    $this->mail = new PHPMailer();
    $this->mail->IsSMTP();
    $this->mail->CharSet    = 'UTF-8';
    $this->mail->Host       = '';
    $this->mail->SMTPAuth   = true;
    $this->mail->Port       = 465;
    $this->mail->SMTPSecure = 'ssl';
    $this->mail->Username   = '';
    $this->mail->Password   = '';
    $this->mail->From       = '';
    $this->mail->FromName   = '';
    $this->mail->WordWrap   = 78;
    switch( is_array( $address ) )
    {
        case false: $this->mail->addAddress( $address ); break;
        case true : foreach( $address as $addr ) { $this->mail->addAddress( $addr ); } break;
    }
    $this->mail->addEmbeddedImage($_SERVER['DOCUMENT_ROOT']."/image/icon/logo-f39200.svg", "logo-f39200", 'logo-f39200.svg' );
    $this->mail->IsHTML(true);
    $this->mail->Body    = $msg;
    $this->mail->Subject = $subject;
    

    我想在里面放一个svg图像,但它不起作用,这是我的身体:

    $message  = '
        <html>
            <head>
                <title>
                    Lorem lorem
                </title>
            </head>
            <body>
                <div style="height:300px;border:1px solid red;display:flex; flex-direction:column; justify-content:flex-start; align-items:center"> //The style tag was here for test
                    <h2>Lorem</h2>
                    <div>
                        <p>
                           Lorem lorem lorem lorem
                        </p>
                    </div>
                    <img src="cid:logo-f39200" alt="logo"/>
                </div>    
            </body>
        </html>';
    

    我尝试:

    • src=“cid:logo”+addEmbeddedImage//我收到了附件,但邮件正文中没有图像
    • src=“absolute path”+addEmbeddedImage//我得到了附件,但没有图像
    • src=“aboslute path”//我什么都没有
    • addEmbeddedImage//我只收到了附件

    不知道我错过了什么,提前谢谢

    0 回复  |  直到 2 年前
        1
  •  0
  •   Vincenzo Visconti    2 年前

    可以尝试在addEmbeddedImage函数中指定MIME类型,如下所示:

    $this->mail->addEmbeddedImage($_SERVER['DOCUMENT_ROOT']."/image/icon/logo-f39200.svg", "logo-f39200", "logo-f39200.svg", "base64" "image/svg+xml");
    

    请注意,许多邮件客户端应用程序不支持svg图像