我正在使用Laravel 5.8进行Web开发。我制作了一个简短的联系表格,访问者可以从中向我发送包含一些数据的电子邮件:姓名,他们的电子邮件,文本等...我遇到@ru域电子邮件的问题。它们不会发送到我的收件箱
这是我的.环境
MAIL_DRIVER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=achelashvili22@gmail.com
MAIL_PASSWORD=myemailpassword
MAIL_ENCRYPTION=tls
我在控制器中的代码:
$from = 'test@testmail.com';
$to = "achelashvili22@gmail.com";
$subject = "Checking PHP mail";
$message = "PHP mail works just fine";
$headers = "From:" . $from;
mail($to,$subject,$message, $headers);
我的form
正常发送电子邮件。输入@ru域电子邮件时出现问题。当我使用任何俄罗斯域电子邮件更改test@testmail.com
时,例如avtandil1994@mail.ru
我在 eebmail 中收到邮件错误:
achelashvili22@gmail.com
host gmail-smtp-in.l.google.com [64.233.184.26]
SMTP error from remote mail server after end of data:
550-5.7.1 **Unauthenticated** email from mail.ru is not accepted due to domain's
550-5.7.1 **DMARC policy**. Please contact the administrator of mail.ru domain if
550-5.7.1 this was a legitimate mail. Please visit
550-5.7.1 https://support.google.com/mail/answer/2451690 to learn about the
550 5.7.1 DMARC initiative. x1si17683973wrm.306 - gsmtp
我也为我的电子邮件做了这个
允许访问不可靠的应用
并且还使用可邮寄,但问题仍然是一样的。
这是幕后的问题。这是一种,你的系统如何向世界传递邮件。
如果您尚未设置邮件网关,您的系统会尝试将邮件直接发送到收件人的邮件门;它由 DNS 的 MX 记录标识。在这里,几乎所有的邮件服务器都有自己的政治,接受来自和尝试的邮件。
更好的方法是使用到提供商的网关并让它分发邮件。提供程序通常需要对客户端进行身份验证。因此,请参阅提供商的文档。