PHP邮件为hotmail更正邮件头



问题很简单。每当我试图从PHP服务器向hotmail地址发送电子邮件时,它甚至无法到达hotmail收件箱,也无法到达其SPAM文件夹。

我正在使用一个自定义的电子邮件功能,但我想有些标题可能不正确,或者它们应该按照特定的顺序排列?

function send_mail($from,$to,$subject,$body){
    global $sitename;
    $headers  = 'MIME-Version: 1.0' . "rn";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
    // Additional headers
    $headers .= 'To: $to' . "rn";
    $headers .= 'From: $sitename <$from>' . "rn";
    $headers .= 'Cc: $from' . "rn";
    $headers .= 'Bcc: $from' . "rn";
    $headers .= 'Reply-To: $from' . "rn";
    $headers .= "Return-Path: $fromn";
    $headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">n";
    $headers .= "Date: " . date('r', time()) . "n";
    if (mail($to,$subject,$body,$headers)) {return TRUE;} else {return FALSE;}
}

我检查了服务器,看它是否被列入黑名单。事实并非如此。

可能是什么问题?或者可能有人有一个经过测试的PHP邮件功能,可以使用hotmail?

感谢

为什么不通过phpmailer发送?只需在您的域中创建一个gmail帐户或您自己的电子邮件帐户。

gmail帐户示例:

require("phpmailer/class.phpmailer.php");
function send_mail($fromEmail, $fromName, $subject, $body)
{
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 0; // 1 tells it to display SMTP errors and messages, 0 turns off all errors and messages, 2 prints messages only.
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; // or 587
    $mail->Username = "youremail@gmail.com";
    $mail->Password = "yourpassword";
    $mail->From = "youremail@gmail.com";
    $mail->FromName = "yourname";
    $mail->AddAddress($fromEmail, $fromName);
    $mail->AddReplyTo("youremail@gmail.com", "yourname");
    $mail->WordWrap = 50;                                 // set word wrap to 50 characters
    // $mail->AddAttachment("/folder/file.zip");         // add attachments
    $mail->IsHTML(true);                                  // set email format to HTML
    $mail->AddEmbeddedImage('img/logo.png', 'logo'); //if you need a logo signature
    $mail->Subject = $subject;
    $mail->Body    = $body."<br/><br/><a href="http://www.yourwebsite.com"><img src="cid:logo" alt="You website title"></a>";
    // $mail->AltBody = "This is the body in plain text for non-HTML mail clients ;-)";
    $mail->Send();
    if($mail->Send())
    {
        return true;
    }
    else
    {
        return false;
    }
}

更多信息:http://phpmailer.worxware.com/?pg=examplebgmail

SPF记录是一种域名服务(DNS)记录,用于标识允许哪些邮件服务器代表您的域发送电子邮件。

SPF记录的目的是防止垃圾邮件发送者在您的域中使用伪造的发件人地址发送邮件。收件人可以参考SPF记录来确定声称来自您的域的邮件是否来自授权的邮件服务器。

如果您的域没有SPF记录,某些收件人域可能会拒绝来自用户的邮件,因为他们无法验证这些邮件是否来自授权邮件服务器。

出站网关的SPF记录

如果您决定启用电子邮件网关功能,则需要确保SPF记录中包括Google服务器和出站网关SMTP服务器地址。

有关更多详细信息,您可以查看此链接

这可能是由于我们的服务器托管了我们的php文件。

我也面临着同样的问题。但我的问题是由于Dreamhost服务器造成的。它在hotmail服务器上被列入黑名单。

解决方案是我购买了用于发送电子邮件的mailjet。

你有SPF记录吗?Hotmail阻止没有SPF记录的域

你可以在这里制作一个

相关内容

  • 没有找到相关文章

最新更新