PHP 邮件功能 - 添加外部图像
Posted
技术标签:
【中文标题】PHP 邮件功能 - 添加外部图像【英文标题】:PHP Mail Function - Add external image 【发布时间】:2021-08-04 22:20:49 【问题描述】:我正在尝试将存储在我的服务器上的图像添加到使用 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" >
<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 上激活了“全部接受”选项,以便我的客户也接受外部图片。
【问题讨论】:
你为什么不试试 phpmailer with html true ?? github.com/PHPMailer/PHPMailer 是错字还是不知道.. 但是你错过了 = for alt in image source... 我添加了 '=' 但我还是看不到图片 好的...你可以试试另一个图片链接吗?? 您可以在浏览器中查看吗?因为我已经检查过了,它回复了我这个网站无法访问。 【参考方案1】:将http://
协议(在图片网址中)替换为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
【讨论】:
这实际上不是第一次删除 / 了。在 apache 的配置文件中,我设置了从 HTTP 到 HTTPS 的重定向,但有时似乎丢失了 eu 和 Elaborato 之间的 /,您知道可能是什么原因吗?当我直接将它写入浏览器时也会发生这种情况。 顺便说一句,即使我用 https 替换了 http,它也不起作用 可能是因为我的https证书无效(谈论apache服务器)?因为我实现这个系统只是为了一些测试。 @Shark44 这是由于HTTP服务器(apache,nginx,...)配置不正确引起的。如果您有权访问服务器配置,则需要修复重定向规则。它们可能在您网站的.htaccess
(Apache)、/etc/nginx/conf.d/sites-enabled/yoursite.conf
、您的网站虚拟主机配置中,几乎可以在您更新的任何配置中。
哦,好吧,基本上它可以使用有效的证书,这对我来说很好,我只是想测试一下,谢谢。以上是关于PHP 邮件功能 - 添加外部图像的主要内容,如果未能解决你的问题,请参考以下文章
将静态图像添加到 php 邮件系统时,为啥会出现“意外 CID”错误?