mail()函数和Microsoft 365

时间:2012-12-26 18:49:45

标签: php email

我正在使用PHP的mail()功能向管理员发送“忘记密码”链接和报告。当我用Gmail测试时,一切正常。但是,当我向Microsoft 365邮箱发送电子邮件时,邮件甚至不会出现在垃圾邮件文件夹中。

我该怎么办?

UPD

我尝试使用标题和“Return-path”附加参数。我的代码如下:

        $to      = 'my_email@corporate_domain.com';
        $subject = 'test';
        $message = 'test';
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= "To: Tamara <my_email@corporate_domain.com>" . "\r\n";
        $headers .= 'From: Sender <sender@domain.com>' . "\r\n";
        $headers .= 'Reply-To: Sender <sender@domain.com>'. "\r\n";
        $headers .=  "Return-Path:<Sender@domain.com>"."\r\n";

        mail($to, $subject, $message, $headers, "-r sender@domain.com");

我终于收到了反弹电子邮件,其中说:

服务不可用;客户端主机[5.166。*。68]使用阻止列表1阻止,来自IP禁止的邮件;要请求从此列表中删除,请将此消息转发至delist@messaging.microsoft.com并包含您的IP地址。

但是没有邮件发送到此电子邮件,即使是这个域。我的IP如何被禁止?

2 个答案:

答案 0 :(得分:0)

我的第一个建议是先删除headers参数中的所有自定义内容,然后查看普通电子邮件是否先通过。如果它失败并且您正在发送纯文本电子邮件,我建议检查邮件服务器发送的地址上的PTR记录。您应该能够在gmail收到的电子邮件的标题中看到这一点。

答案 1 :(得分:0)

使用以下方法尝试发送测试电子邮件:

$to      = 'myemail@company-domain.com';
$subject = 'test';
$message = 'test';
$headers = 'From: yourValidEmail@example.com' . "\r\n" .
           'Reply-To: yourValidEmail@example.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

如果此方法有效并且您现在在垃圾邮件/垃圾邮件文件夹中看到了您的电子邮件,我建议您查看设置PTR record并确保为您提供正确的反向DNS设置域名指向您的服务器IP地址。见Reverse DNS