【发布时间】:2012-09-12 17:41:41
【问题描述】:
我有一个简单的 php 电子邮件脚本,我希望在底部包含一个图像。当我添加像下面这样的图像标签时,电子邮件只显示<img src="http://domain.com/images/logo.png" /> 而不是实际图像。任何想法为什么?
<?PHP
$email = $_POST["emailaddress"];
$to = "you@youremail.com";
$subject = "New Email Address for Mailing List";
$headers = "From: $email\n";
$headers .= "Content-type: text/html\r\n";
$message = "A visitor to your site has sent the following email address to be added to your mailing list.\n
Email Address: $email";
$user = "$email";
$usersubject = "Thank You";
$userheaders = "From: info@domain.com\n";
$usermessage =
"
Thank you for joining our mailing list.
We hope to see you very soon!
Address 1
Address 2
<img src=\"http://domain.com/images/logo.png\" />
";
mail($to,$subject,$message,$headers);
mail($user,$usersubject,$usermessage,$userheaders);
$fh = fopen("email.xml", "a");
fwrite($fh, "$email\r\n");
fclose($fh);
?>
【问题讨论】:
-
我注意到您在 $usermessage 中声明了实际的 HTML。你有没有尝试过(我不确定代码是什么,自从我接触 php 以来已经很久了)类似于 $usermessage = "Thank you ... " & domain.com/images/logo.png" /> 的东西
-
代码中有大量错误。首先,您需要在消息中添加一些
。其次,如果您希望图像显示您至少需要一个标题:Content-Transfer-Encoding P.S. mail() 是发送电子邮件的最糟糕的方法。试试 SMTP。 -
@tntu 我尝试了添加 $headers .= "Content-Transfer-Encoding: 8bit\n"; 的建议但它不起作用。 8bit 是不是用错了?
-
尝试添加以下标题:
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
标签: php html image email variables