首先要说,有条件的,尽量使用 Mailgun 发送客信,因为 Mailgun 真的是非常好的邮件服务器,高效率而且有完善的分析和报告系统。然后国内某些无耻的邮件服务商相互勾结,恶意拦截 Mailgun 发送的邮件,由于国内部分运营商认为 Mailgun 邮件包含大量垃圾邮件,所以对 IP 限制很死,导致邮件无法正常送达客户。
为了解决这一问题,又不想屈服于国内的垃圾邮件服务提供商,可以暂时通过 smtp 发送邮件来解决问题(如果邮件量巨大的时候,千万别这么做,很容易 iP+域名 被阻止)。然后你会发现即便当你配置了 ss-panel .env 中的 smtp 信息,你依然无法通过 smtp 发送邮件(人家作者也备注了,本来就不再提供 smtp 支持了),那么你可以按如下方法,修复这一问题。
找到 ss-panel 程序目录 ./app/Services/Mail/Smtp.php 文件第27行:
$mail->SMTPSecure = 'tls';
将其修改为:
if(Config::get('smtp_ssl') == 'true'){
$mail->SMTPSecure = (Config::get('smtp_port') =='587'?'tls':'ssl');
}
保存,然后在 .env 文件中配置 smtp 参数,并且把 MailDriver 设置为 smtp,用你的游览器访问你的网站链接 ./admin/test/sendmail,测试一下是否能够发信了?
smtp 修复方案来源于 ss-panel v3 魔改版,感谢作者 kjukjuatnk.