无法发送 HTML 邮件

Sending HTML mail not working

我正在使用 PHP mail() 发送一条非常简单的 HTML 消息。目的是发送包含用户电子邮件地址和验证码的 link。当用户单击 link 时,网站将收到电子邮件地址和代码以验证用户的电子邮件地址是否准确。

起初,它起作用了,当时它只不过是 HTML/BODY 标签、一个 header 和验证电子邮件 link。我在调试验证过程时发送了几次电子邮件。然后我做了一些我认为是小的改动,然后它就停止工作了。如图所示,微小的变化被注释掉了。我添加了一张图片和几行文字。

它不再发送电子邮件,我也没有收到任何警告或错误。我已经删除了图像、多余的文本并注释掉 link 的添加,但它仍然无法正常工作。谁能看到我做错了什么? (为了保护无辜者,我改名了。)

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

似乎唯一阻止您发送电子邮件的是:

$email = str_replace("@","%40",$email);

因为您要将其发送到示例%40hostname.com

还要检查电子邮件是否已发送,请使用:

if(@mail($to, $subject, $message, $headers))
{
  echo "Mail Sent Successfully";
}else{
  echo "Mail Not Sent";
}