Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mail()函数与Microsoft 365_Php_Email - Fatal编程技术网

Php mail()函数与Microsoft 365

Php mail()函数与Microsoft 365,php,email,Php,Email,我正在使用PHP的mail()函数向管理员发送“忘记密码”链接和报告。当我用Gmail测试它时,一切正常。但当我向Microsoft 365邮箱发送电子邮件时,邮件甚至不会出现在垃圾邮件文件夹中 我该怎么办 UPD 我尝试使用headers和“returnpath”附加参数。我的代码如下所示: $to = 'my_email@corporate_domain.com'; $subject = 'test'; $message = 'tes

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

我该怎么办

UPD

我尝试使用headers和“returnpath”附加参数。我的代码如下所示:

        $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");
$to='my_email@corporate_domain.com';
$subject='test';
$message='test';
$headers='MIME版本:1.0'。“\r\n”;
$headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
$headers.=“收件人:塔马拉”。“\r\n”;
$headers.='From:Sender'。“\r\n”;
$headers.='回复:发件人'。“\r\n”;
$headers.=“返回路径:”。\r\n”;
邮件($to,$subject,$message,$headers,”-rsender@domain.com");
我终于收到了bounce的电子邮件,上面写着:

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


但没有邮件发送到此电子邮件,甚至没有发送到此域。我的IP怎么可能已经被禁止了?

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

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

$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);

如果你现在在垃圾邮件文件夹中看到你的电子邮件,我建议你考虑设置一个反向dns,并确保你的域名有正确的反向dns设置,以指向你的服务器ip地址。请参阅

您是否收到跳转邮件?您可以发布用于邮件功能的代码吗?@Tamara这介绍了如何设置SMTP信封-确保与“发件人”地址关联的电子邮件帐户将接受任何跳转messages@StevenFarley我只是在测试,所以我不使用任何标题:mail(“myemail@company-com“,”测试“,“test”)@Tamara尝试设置发件人地址-我认为如果您的邮件包含无效的发件人地址,Office 365可能会拒绝您的邮件