PHP 邮件功能 - 添加外部图片

PHP Mail Function - Add external image

我正在尝试将存储在我的服务器上的图像添加到使用 PHP 的 mail() 函数发送的电子邮件中。下面是 php 代码:

$subject = 'Password Reset';

$message = '
<html>
<head>
    <title>Password Reset</title>
</head>
<body>
    Salve '.$username.', utilizza questo link per resettare la password: <a href="https://gestionale.boscarato.eu/Elaborato/reset/reset_password.php?c='.$operation_code.'">Resetta la tua password </a>
    <br><br>
    <img src="http://gestionale.boscarato.eu/Elaborato/images/logo.png" alt="Logo" width="300" height="50">
    <br>
    Cordiali saluti,
    <br>
    <h5>Luca Boscarato [5E] </h5>
</body>
</html>
';

$headers =  'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'From: Luca Boscarato <boscarato.luca@gmail.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

mail($email, $subject, $message, $headers);

问题是无法显示图像(我已经在 gmail 上激活了 'accept-all' 选项,因此我的客户端也可以接受外部图像。

http:// 协议(在图像 URL 中)替换为 https://

错误是由于远程服务器配置不正确造成的。

HTTPS 正确加载

https://gestionale.boscarato.eu/Elaborato/images/logo.png  # HTTPS correct

但 HTTP 重定向无效 URL

http://gestionale.boscarato.eu/Elaborato/images/logo.png  # HTTP before redirect

重定向到

https://gestionale.boscarato.euelaborato/images/logo.png  # invalid URL

注意 .eu TLD 后缺少的斜杠。

curl -I "http://gestionale.boscarato.eu/Elaborato/images/logo.png"
HTTP/1.1 301 Moved Permanently
Date: Fri, 14 May 2021 19:21:06 GMT
Server: Apache/2.4.38 (Raspbian)
Location: https://gestionale.boscarato.euElaborato/images/logo.png
Content-Type: text/html; charset=iso-8859-1