必须条件:
具备一台可以通过25端口发送邮件的服务器。(称为:邮件代理,假设公网ip为:1.1.1.1)
阿里云封禁25号端口:
出于安全考虑,阿里云默认封禁TCP 25端口出方向的访问流量,即你无法在阿里云上的云服务器通过TCP 25端口连接外部地址。
TCP 25端口的出方向封禁可能影响您通过TCP 25 端口连接第三方邮件服务商的SMTP服务器对外部发送邮件。
如果您需要使用阿里云上的云服务器对外部发送邮件,建议您使用阿里云邮产品或者使用第三方邮件服务商提供的465端口。
如果存在特殊场景,您必须在云服务器上使用TCP 25端口进行对外连接,请在安全管控平台中提交25端口解封申请。
关于修改 /etc/mail.rc 指定具体发件邮箱的方式,网上一大把,就不说了,其他搭建mail server等方式,就更复杂了。
这里介绍一种通过iptables规则绕过25端口的方法
细节不说了,直接上方案
阿里云服务器配置:
iptables -t nat -A OUTPUT -p tcp --dport 25 -j DNAT --to 1.1.1.1:10025
IP和端口参考邮件代理服务器设置的具体值
邮件代理服务器配置:
安装postfix
postfix配置,授权外网访问
# vi /etc/postfix/main.cf
inet_interfaces = all
#inet_interfaces = localhost
mynetworks = 0.0.0.0/0
# systemctl restart postfix
IPS=(
2.2.2.2
3.3.3.3
4.4.4.4
)
for IP in ${IPS[@]}
do
iptables -t nat -A PREROUTING -p tcp -s ${IP} --dport 10025 -j REDIRECT --to-ports 25
iptables -A INPUT -p tcp -s ${IP} --dport 25 -j ACCEPT
done
阿里云服务器测试:
mail -s "这是一封测试邮件" xxx@yyy.zzz
abc
def
Ctrl+D