我已经设置了一个邮件表单来发送我的网页上的电子邮件,我希望能够在这些电子邮件中设置图像。这是我目前的代码:
$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"/>
并实际显示代码而不是图片。是否可以将此显示改为图片?
感谢您的帮助
答案 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突然显示)