将图像放入PHP电子邮件中

时间:2011-04-14 13:39:21

标签: php html ajax email

我已经设置了一个邮件表单来发送我的网页上的电子邮件,我希望能够在这些电子邮件中设置图像。这是我目前的代码:

 $to = "test@test.com";
 $subject = "Emergency details";
 $body = "Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/".$passport."'/>";
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }

当我发送此电子邮件时,输出如下所示:

Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/test.jpg"/>

并实际显示代码而不是图片。是否可以将此显示改为图片?

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

那是因为您实际上是在发送文本邮件而不是HTML邮件。你必须设置正确的标题。

查看mail()函数手册:http://php.net/manual/en/function.mail.php

具体来说:示例#4发送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";

答案 1 :(得分:0)

您将以纯文本形式发送此电子邮件。您应该使用mail()的第四个参数(标题)指定它应该被解释为html邮件。

示例可以在documentation

中找到

摘录:

// 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 .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

答案 2 :(得分:0)

您正在发送简单邮件,因此它仅被解释为文本。你想要做的是发送一个包含HTML而不是简单文本的邮件。这要求您在邮件中包含解释邮件内容的标题。

试试这个:

$headers .= "--$boundary\r\n
Content-Type: text/html; charset=ISO_8859-1\r\n
Content-Transfer_Encoding: 7bit\r\n\r\n";

$to = "test@test.com";
$subject = "Emergency details";
$body = "Passport picture: <img src='http://www.test.co.uk/files/passport_uploads/".$passport."'/>";
if (mail($to, $subject, $body, $headers)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}

(示例从http://www.daniweb.com/web-development/php/threads/2959突然显示)