由于 Vultr VPS 默认是禁止程序通过 sendmail
发邮件的。另外 sendmail
发的邮件通常是被一些邮箱当作 spam
处理的。
所以, 我的 MT
是通过设定 stmp
服务器和用户名、密码认证登陆到 mail.qq.com
发送邮件。 简单配置如下:
config # in mt-config.cgi
EmailAddressMain UserName@QQ.com
MailTransfer smtp
SMTPServer smtp.qq.com
SMTPUser UserName
SMTPPassword MyPassword
SMTPAuth ssl
这个配置可以正常工作。。。
但是,一段时间后查看日志,发现 mt-starman.log
总在不停的增大中,下载下来,发现每次发邮件总会警告:
quote *******************************************************************
Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you really don't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
at lib/MT/Mail.pm line 237.
呃,定位发现是Net::SMTP::SSL
模块问题。。。 这个模块太老了。。。。。
搜索了一圈,这个问题很普遍,而且解决办法都五花八门, 但是似乎都是不是很好的解决办法。。。
因为我用的是 MT
的老版本,那么我查查 MT6.x
系列是如何解决的?
查看 MT6.x 的 Mail.pm
(地址: https://github.com/movabletype/movabletype/blob/master/lib/MT/Mail.pm)
我倒~~ MT6.x 居然直接停用了 Net::SMTP::SSL
模块,改用了 Net::SMTPS
模块。 这个并不是我想要的结果。
继续搜索,终于定位到下面两个链接:
豁然大悟,理由如下:
Net::SMTP itself can do the necessary SSL and STARTTLS bits just fine since version 1.28, and Net::SMTP::SSL is now deprecated. Since 1.28 isn't that old yet, keep the old code in place and use it when necessary.
简单的说就是:
Net::SMTP::SSL 模块废弃了。 这个模块是 Net::SMTP 模块的扩展, 现在的 Net::SMTP 模块(版本大于1.28)自行即可处理 SSL 连接。。
那么解决办法很简单了。。。
打开 Mail.pm
,定位 Net::SMTP::SSL
,直接改成 Net::SMTP
,并保证其有参数 SSL => 1
即可。
代码片段如下:
perlelsif ($ssl) {
### By EasunLee Net::SMTP can do ssl well itself ,Net::SMTP::SSL is obsolete, use only when necessary,
$smtp = Net::SMTP->new(
$host,
Port=> $port,
Timeout => 60,
Hello => $localhost,
SSL => 1,
( $MT::DebugMode ? ( Debug => 1 ) : () ),
)
or return $class->error(
MT->translate(
'Error connecting to SMTP server [_1]:[_2]',
$host, $port
)
);
}
详细修改请参考 GitHub。
保存,重启 mt-starman
。 测试发邮件,一切正常,也没有了警告。。
学了一招,sendmail的替代方式。
的确是 sendmail 的替换方式。不过如果不是VPS有限制的话,还是系统的sendmail简单粗暴好用。
哦~~~
看来用的是 P9 全网通,双卡双待。话说,看来圈妹儿你今天不加夜班啊。哈哈
话说网络中是不是什么都能被您这类家伙看穿啊
哈哈,设备信息再名字后面写这呢而已。
博主发个新帖子灌灌水吧,太干旱了!
你常来浇浇水好了。哈哈
PS: 水塘考虑过段时间是否恢复。哈哈
好哎!
不过准备采用什么样式啊?
昨天在网上搜过了一下,竟然还有使用LEOBBS程序的在运行论坛,使用手机注册起来略麻烦。不过进去论坛后一种熟悉的感觉啊~
还是熟悉的配方吧。哈哈,我自己的那个小水塘,数据,程序都在。只是没有配置服务器罢了