PHP邮件功能不发送图像

时间:2016-02-11 16:50:48

标签: php html email

我正在制作一个邮件功能,它可以发送带有图片的文本,它可以用纯文本工作,但在添加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 个答案:

答案 0 :(得分:1)

邮件客户端知道如何处理这件事?:

/cat.jpg

cat.jpg的根目录中是gmail.com吗?它是在Outlook应用程序的根目录中吗?邮件客户端根本无法知道您的图像在哪里,因为您没有告诉它在哪里看。

使用完全限定的网址:

http://somedomain.com/cat.jpg

另请注意,某些邮件客户端可能仍会忽略此操作,可能取决于用户设置。链接到邮件中的资源是一种旧的垃圾邮件制作者技巧,用于跟踪邮件是否被打开/读取。消息中的Embedding the image as a resource通常是更好的方法。