在RequestTracker(RT)里用msmtp通过远程smtp服务器465端口发邮件

— 本帖被 51干警网 设置为精华(2017-11-21) —
SoftLayer(IBM Cloud)过滤了TCP 25端口 ,Vultr的也可能过滤了,越来越多的云服务商主动屏蔽了25端口的通讯。

阿里云对新建的ECS实例,也过滤了25端口。

RequestTracker 的工单系统,邮件通知是重要的需求之一,当阿里云ECS实例不能使用25端口发信时,可以尝试配置msmtp使用远程的smtp 465端口来发邮件。

环境:Deiban 8,RT 4.4.2, RT安装在 /opt/rt4 的路径
国内某免费的企业邮箱:smtp服务器地址,smtp.exmail.qq.com;SSL端口:465;邮箱地址:rt @ anqun.org

过程:

1. /opt/rt4/etc/msmtp_wrapper.conf # 在RT配置目录中创建 msmtp 的配置文件,文件属主是web进程用户,即www-data,权限是600,内容如下:
复制代码
# Set default values for all following accounts.
defaults
port 465
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# logfile ~/.msmtp.log
account qmail
host smtp.exmail.qq.com
from rt@anqun.org
auth on
user rt@anqun.org
password NiDeMiMa
# auto_from on
tls_starttls off
# Set a default account
account default : qmail

2. /opt/rt4/etc/msmtp_wrapper # 在RT文件配置目录中创建Shell文件,文件属性是web进程用户,即www-data,且有执行的权限,+x,内容如下:
复制代码
#!/bin/bash
/usr/bin/msmtp -t -C /opt/rt4/etc/msmtp_wrapper.conf
/usr/bin/logger -t RTmailer -p syslog.info -- CALL /usr/bin/msmtp -nt "$@" RETURNED $?

3. /opt/rt4/etc/RT_SiteConfig.pm # 在RT的自定义配置文件中,加入以下一行内容,让RT使用msmtp来发信:
复制代码
Set( $SendmailPath, '/opt/rt4/etc/msmtp_wrapper');

4. 重启Web服务,以让新的设置生效,测试发信正常

参考:
* https://rt-wiki.bestpractical.com/wiki/Msmtp
* https://wiki.archlinux.org/index.php/msmtp#Server_sent_empty_reply