我的智慧结束了。我们在GoDaddy主机上发送电子邮件时遇到了问题,主要是因为它太不可靠了(有时它工作得很完美,有时候我需要发送几封电子邮件才能通过,排长队等等。这不是第一次顺便说一句,我和他们一起遇到过这些问题。所以,我打电话给他们,他们建议的解决方案是设置一个Office 365帐户并使用它。我把这些信息传递给了我的客户,他做到了(尽管不是通过Godaddy的办公室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)
有很多评论说GoDaddy只是阻止传出的smtp连接并强制你使用他们的中继服务。然而,所有提到这一点的消息来源似乎已经过时(2014年及更早),更不用说我正在尝试他们的支持在手机上建议的设置。
我已经完成了对此microsoft article的所有指示。在我的办公室365管理员帐户上,我可以验证DNS以检查一切是否正常,它是这样说的。微软的支持也说一切都是正确的。域名设置为“权威”
我也尝试过设置连接器并尝试连接到mydomain-com.mail.protection.outlook.com,但失败并出现同样的错误,所以现在我删除了那个连接器
我已经调用了GoDaddy支持,看看它是否像阻止我的连接的防火墙,他们说不是这样。他们建议删除我的工作区电子邮件帐户,我这样做了,之后仍然失败。
所以,我迷路了。我需要这个以某种方式工作,通过微软的smtp服务器(而不是godaddy的)发送电子邮件特别是因为我的客户已经设置了他的办公室365帐户并支付了它,所以...是的。我错过了DNS更改之外的一些配置吗?我应该连接到其他一些smtp服务器吗?改变主机?我在PHP脚本上缺少一些参数吗?
这似乎是一个相当普遍的问题,但很难找到一些明确的答案。希望我的案子可以帮助其他人尝试类似的东西。
答案 0 :(得分:0)
我在Godaddy的Laravel OctoberCMS中遇到了同样的问题。 对我有用的唯一配置是:
MAIL_DRIVER=sendmail
MAIL_HOST=smtp.office365.com
MAIL_PORT=587
MAIL_USERNAME=myaccount@mydomain.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
我希望这对您有帮助