您好,我使用 Laravel 框架通过以下配置为我的网站设置了联系表单
MAIL_DRIVER=smtp
MAIL_HOST=smtp.netregistry.net
MAIL_PORT=465
MAIL_USERNAME= example@domain.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=ssl
MAIL_FROM= example@domain.com
MAIL_NAME= name
上面的配置在我的本地主机上工作正常,但是当我在实时服务器上尝试时它给我错误
Connection could not be established with host smtp.netregistry.net [Connection refused #111]
我尝试通过将邮件服务器更改为 smtp.gmail.com 来修复它,甚至尝试使用端口 25、465、587 进行加密,例如 ssl、tls、startTLS,但都没有用。
所以我联系了托管服务提供商并寻求帮助,经过 12 天的努力让他们解决我的问题,我终于想出了
our cloud infrastructure does not allow external smtp connections from our hosting. This means that if you are sending emails from your website you will need to use localhost as the smtp host setting.
所以现在我尝试将我的 MAIL_HOST 更改为 localhost,这给了我错误
Connection could not be established with host smtp.netregistry.net [Connection refused #0]
现在他们建议我的脚本有问题。有什么建议
最佳答案
这完全是来自您的主机的废话。首先,云系统通常会阻止 OUTGOING SMTP,因为这是一种垃圾邮件预防措施,但您的脚本没问题。您的主机可能会阻止端口 80 以外的所有内容,这意味着您根本无法连接到 SMTP 主机。您可以通过根本不使用 SMTP 来使用本地主机,并使用内置邮件程序(sendmail 很常见)。
将 MAIL_DRIVER=smtp
更改为 MAIL_DRIVER=mail
以使用 php 的内置邮件程序。这可能会解决您的问题,如果不能,那么您应该寻求其他托管安排。
关于php - 使用 laravel 5.1 在实时服务器中发送电子邮件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415177/