我使用PHP mail()发送一个非常简单的HTML消息。目的是发送包含用户电子邮件地址和验证码的链接。当用户点击该链接时,该网站将收到电子邮件地址和代码,以验证用户的电子邮件地址是否准确。
首先,当它只是HTML / BODY标签,标题和验证电子邮件链接时,它起作用了。我在调试验证过程时多次发送了电子邮件。然后我做了我认为是微小变化的东西,它就退出了工作。如图所示,微小的变化被注释掉了。我添加了一个图像和几行文字。
它不再发送电子邮件了,我没有收到任何警告或错误。我删除了图像,额外的文本,并注释了添加链接,但它仍然无法正常工作。谁能看到我做错了什么? (我改名以保护无辜者。)
function sendEmail($email, $code) {
$email = str_replace("@","%40",$email);
$to = $email;
$subject = 'Email Verification';
$headers = "From: " . strip_tags('someone@somewhere.com') . "\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 .= "<h2>Thank you!</h2>\r\n";
//$message .= '<img src="http://www.mytestwebsite.com/images/logo.png"><br>';
//$message .= 'Thank you for registering an account with us. ';
//$message .= 'Please verify your email address by clicking the button below.<br>';
//$message .= '<a href="http://www.mytestwebsite.com/verifyemail.php?email='.$email.'&code='.$code.'">Verify Email</a>';
$message .= "</body></html>\r\n";
$message = wordwrap($message, 70, "\r\n");
mail($to, $subject, $message, $headers);
}
如何找出我的设置有什么问题?是否有一个网站会在我的代码中显示错误?
感谢您的帮助! SH
答案 0 :(得分:3)
似乎阻止您发送电子邮件的唯一原因是:
$email = str_replace("@","%40",$email);
因为您要将其发送到示例%40hostname.com
还要检查是否发送了电子邮件:
if(@mail($to, $subject, $message, $headers))
{
echo "Mail Sent Successfully";
}else{
echo "Mail Not Sent";
}