Laravel - 通过Exchange Server发送电子邮件

时间:2017-03-07 20:48:00

标签: php email smtp laravel-5.1 exchange-server

对于我的Laravel 5.1应用程序,我有一个内部部署的Exchange服务器和用户帐户,我想通过它发送电子邮件。以下是我的.env文件中的值:

MAIL_DRIVER=smtp
MAIL_HOST=[IP ADDRESS]
MAIL_PORT=587
MAIL_USERNAME=[USERNAME]
MAIL_PASSWORD=[PASSWORD]
MAIL_ENCRYPTION=null

使用tls作为加密值时出错,仅仅是为了测试,我现在一直在使用null。但后来我得到了Failed to authenticate on SMTP server with username "*******" using 1 possible authenticators

的错误

我不确定应该从哪里开始进行故障排除。它似乎正在使用NTLM身份验证来验证凭据。我应该检查Exchange服务器以查看它是否已为此设置?我使用的凭据是正确的。或者我的配置有问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

当您使用端口587(MSA)时,您可能希望切换到应用程序中的端口465(smtps)以进行测试。 Because MSA should accept email after authentication(例如,在SMTP AUTH之后)。

添加检查是否可以通过端口25通过普通telnet发送电子邮件(例如here解释)。如果您需要TLS,那么您可以按照解释here检查OpenSSL,例如,如果Exchange服务器上存在自签名的SSL证书,该证书在应用程序中不受信任(例如Laravel)。

根据上面的故障排除,您可能会得到一个更好的错误消息,而不是基于应用程序。然后,可以使用它在MS Exchange服务器上进行故障排除(如果需要,因为托管Laravel应用程序的服务器上的telnet测试失败)。