基于 Laravel 开发的程序,在本地测试时,发送邮件功能正常。发布到阿里云服务器后,发送邮件报错:
Connection could not be established with host smtp.163.com [Connection timed out #110]
看了下阿里云的文档,发现是阿里云屏蔽了25
端口,解决办法是使用465
端口及ssl
加密协议发送邮件即可。
配置示例:
MAIL_MAILER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465 //默认配置的端口号是25,而阿里云屏蔽了25端口,因此改为465端口
MAIL_USERNAME=xxxxxx@163.com
MAIL_PASSWORD=xxxxxxxxxxxx
MAIL_ENCRYPTION=ssl //默认配置的是none,465端口是ssl加密发送邮件的端口,因此改为ssl。
MAIL_FROM_ADDRESS="xxxxxx@163.com"
MAIL_FROM_NAME="${APP_NAME}"
再次测试发送邮件,成功!问题解决。