PHP邮件功能不发送图像
Posted
技术标签:
【中文标题】PHP邮件功能不发送图像【英文标题】:PHP mail function not sending image 【发布时间】:2016-05-22 13:55:10 【问题描述】:我正在制作一个邮件功能,它可以发送一些带有图片的文本,它适用于纯文本,但添加 img 代码后,收件人得到的仍然是纯文本。该图像位于根目录中。
代码如下:
<form method="POST">
<input name="submit" type="submit" value="send!"/>
</form>
<?php
if(isset($_POST['submit']))
$to="example@outlook.com";
// subject
$subject = 'test05';
// message
$message = "
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<img id='cat' width='208px' src='/cat.jpg'>
</table>
</body>
</html>
";
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'Reply-To: example@outlook.com' . "\r\n";
// $headers .= 'From: Panpan <general@panpan.tokyo>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
// mail($to, $subject, $message, $headers);
if (mail($to, $subject, $message, $headers))
// echo "Mail was sent! Great!";
echo $message;
else
echo "Mission Failed";
?>
【问题讨论】:
图片需要是绝对路径,不能是相对路径 【参考方案1】:邮件客户端知道如何处理这个问题?:
/cat.jpg
cat.jpg
是否在 gmail.com
的根中?它在 Outlook 应用程序的根目录中吗?邮件客户端根本无法知道您的图像在哪里,因为您没有告诉它在哪里查看。
使用完全限定的 URL:
http://somedomain.com/cat.jpg
另请注意,某些邮件客户端可能仍会忽略这一点,这可能取决于用户设置。链接到邮件中的资源是一种旧的垃圾邮件发送者技巧,用于跟踪邮件是否被打开/阅读。消息中的Embedding the image as a resource 通常是更好的方法。
【讨论】:
以上是关于PHP邮件功能不发送图像的主要内容,如果未能解决你的问题,请参考以下文章