修复 ss-panel v3 无法使用 SMTP 发送邮件的问题 /解决QQ邮箱拦截 Mailgun 邮件

首先要说,有条件的,尽量使用 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.

Comment

  1. CyJaySong 2017.07.14 11:49上午

    您好,能教我怎么配置ss-panel邮箱验证么,我试了很久,一直没成功,用的Mailgun免费域名邮箱。