我使用以下PHP代码发送电子邮件。我在Outlook和其他地方测试过,一切都正确。但是,如果我将电子邮件发送给使用Godaddy基于Web的电子邮件查看器的人,则会遇到两个问题:
已经在多台计算机和浏览器上使用多个基于godaddy的帐户验证了这一点。
以下是我用来发送电子邮件的代码:
//build and send the email
$to = $email;
$subject = 'Confirm your subscription';
$message =( "<html>\r\n");
$message .=( "<head>\r\n");
$message .=( "<title>Confirm</title>\r\n");
$message .=( "</head>\r\n");
$message .=( "<body>\r\n");
$message .=( "<h2>Thank You for registering</h2>\r\n");
$message .=( "<p>To complete your registration, please click the link below.</p>\r\n");
$message .=(" <p><a href=\"http://www.site.com/confirmation.php?confirm=$visitor_hash\">Click here to confirm your interest.</a></p>\r\n");
$message .=( "</body>\r\n");
$message .=( "</html>\r\n");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: Site<info@site.com>\r\n";
mail($to, $subject, $message, $headers);
有什么想法吗?
答案 0 :(得分:9)
经过大量搜索,发布和调整后,我找到了解决方案。我在用户评论的PHP Mail功能页面上找到了这个。
我改变了这三行:
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: Site<info@site.com>\r\n";
到
$headers ='"MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . PHP_EOL;
$headers .= 'From: Site<info@site.com>' . PHP_EOL;
这解决了这个问题。
谢谢, 克里斯
答案 1 :(得分:0)
正确构建的HTML电子邮件实际上是一封MIME电子邮件,您不构建它。 mime-version标头是不够的。尝试使用Swiftmailer或PHPMailer,这两种方法都可让您毫不费力地构建多部分电子邮件