对于我的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服务器以查看它是否已为此设置?我使用的凭据是正确的。或者我的配置有问题吗?
提前致谢。
答案 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测试失败)。