【发布时间】:2017-04-06 03:29:18
【问题描述】:
我已经束手无策了。我们在 GoDaddy 主机上发送电子邮件时遇到问题,主要是因为它太不可靠(有时它工作得很好,有时我必须发送几封电子邮件才能通过,排长队等等。这不是第一次顺便说一句,我和他们有过这些问题)。所以,我打电话给他们,他们推荐的解决方案是设置一个 Office 365 帐户并改用它。我将这些信息传递给了我的客户,他做到了(尽管不是通过 Godaddy 的 Office 365 产品,而是直接与微软合作,这肯定有助于解释困难),但我仍然无法连接。我开始研究这个问题,但在这一点上我可以说我只是迷路了。这是我尝试/学到的一切,以及我正在尝试的联系。
我的 PHP 设置是 laravel 5.2,通过 swiftmailer 发送电子邮件。连接数据位于 .env 文件中:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.office365.com
MAIL_PORT=587
MAIL_USERNAME=myaccount@mydomain.onmicrosoft.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
And a sample php script sending emails
$logger = new \Swift_Plugins_Loggers_EchoLogger();
Mail::getSwiftMailer()->registerPlugin(new \Swift_Plugins_LoggerPlugin($logger));
$master_email = "foo@bar.com";
Mail::send('emails.contact_us', $data, function ($message) use ($master_email, $request) {
$message->from("myaccount@mydomain.onmicrosoft.com");
$message->to($master_email)->subject('Subject');
});
它失败并显示消息
++ 启动 Swift_SmtpTransport !!无法与主机 smtp.office365.com 建立连接 [连接被拒绝 #111](代码:0)
有很多 cmets 说 GoDaddy 只是阻止传出 smtp 连接并强制您使用他们的中继服务。但是,所有提到这一点的消息来源似乎都已过时(2014 年及更早),更不用说我正在尝试他们的支持在电话上建议的设置。
我已经按照microsoft article 的指示执行了所有操作。在我的 office 365 管理员帐户上,我可以验证 DNS 以检查一切是否正常,它是这样说的。微软支持还说一切都是正确的。域被设置为“权威”
-
我还尝试设置连接器并尝试连接到 mydomain-com.mail.protection.outlook.com,但由于同样的错误而失败,所以现在我已经删除了该连接器
我已致电 GoDaddy 支持,查看是否是防火墙之类的东西阻止了我的连接,他们说不是这样。他们建议删除我的工作区电子邮件帐户,我这样做了,之后仍然失败。
所以,我迷路了。我需要它以某种方式工作,特别是通过微软的 smtp 服务器(而不是 Godaddy 的)发送电子邮件,因为我的客户已经设置了他的 Office 365 帐户并支付了费用,所以......是的。除了 DNS 更改之外,我是否缺少一些配置?我应该连接到其他 smtp 服务器吗?换主机?我的 PHP 脚本中是否缺少某些参数?
这似乎是一个相当普遍的问题,但很难找到一个明确的答案。希望我的案例能帮助其他人尝试类似的事情。
【问题讨论】:
-
你找到解决办法了吗?
标签: php email dns smtp office365