我不久前写了一个php例程来发送HTML电子邮件以进行电子邮件验证。
这是一个使用互联网徽标的img标签,然后是"谢谢你,点击下面的按钮验证你的电子邮件地址。"起初我遇到了一些麻烦,但是你们让我把它拉直了(Sending HTML mail not working)。当我得到答案的时候,我踢自己是因为我自己没有看到它。
使用我学到的东西,我在不同的项目上尝试了类似的东西。只是这次我使用了我网站文件夹中的图片。它不会发送。如果我拿出我的图像并放入旧图像,它就会起作用。如果我放入两个图像,它会工作。如果我拿出旧图像,它就会失败。如果我拿出两张图片,那就行了。认为它可能是一个行长度问题,电子邮件服务器窒息(本地图像有一个长文件名,虽然路径很短),我缩短了图像文件的名称。它仍然失败了。我再次用几个字符更改了图像文件的名称,但它失败了。似乎这个新形象被诅咒了。
我在使用其他电子邮件时又遇到了一些问题。我无法提供代码的全文,而不会泄露应受保护的客户信息。但是我要包括一些,这样你就可以看到我试图将行长保持在70个字符以下。
function sendVerificationEmail($email, $verificationcode) {
$email2 = str_replace("@","%40",$email);
$to = $email;
$subject = 'aaaa bbbbb ccccc Validation'; //text replaced to protect client and maintain line lengths...
$headers = "From: " . strip_tags('dddddd@eeee.org') . "\r\n";
$headers .= "Reply-To: ". strip_tags('dddddd@eeee.org') . "\r\n";
$headers .= "CC: \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = "<html><body>\r\n";
//$message .= "test#10<br>\r\n";
//$message .= "<img src='http://www.012345678901234.com/eeee/images/eeeelogo_short.png'>";
//$message .= "<img src='http://www.012345678901234.com/eeee/images/eeeelogo.png'>";
//$message .= '<img src="http://www.ffffffff.com/22221111004444/assets/images/logo.png"><br>';
$message .= "\r\n<h2>Thank you!</h2>\r\n";
$message .= 'Thank you for registering an account with gggg hhhhh iiiiii! ';
$message .= 'Please verify your email address by clicking the button below.<br><br>';
$message .= '<a href="http://www.012345678901234.com/eeee/verifyemail.php?email='.$email2.'&code='.$verificationcode.'"><img src="http://www.012345678901234.com/images/verifyemail.png"></a>';
$message .= "</body></html>\r\n";
$message = wordwrap($message, 70, "\r\n");
mail($to, $subject, $message, $headers);
}
第二项和第三项注释掉了我的问题图片。你有什么建议我先看看?
SH
答案 0 :(得分:0)
//$message .= "<img src='http://www.012345678901234.com/eeee/images/eeeelogo_short.png'>";
//$message .= "<img src='http://www.012345678901234.com/eeee/images/eeeelogo.png'>";
//$message .= '<img src="http://www.ffffffff.com/22221111004444/assets/images/logo.png"><br>';
如果第一个有效,为什么不对你的第二个和第三个进行双重引用? 并引用你的img src。
像这样:
//$message .= '<img src="http://www.012345678901234.com/eeee/images/eeeelogo_short.png">';
//$message .= '<img src="http://www.012345678901234.com/eeee/images/eeeelogo.png">';
//$message .= '<img src="http://www.ffffffff.com/22221111004444/assets/images/logo.png"><br>';
我的其余代码似乎很好(当然可能是错误的)