最近很多朋友问,SMTP发信会暴露网站服务器的IP(即使用了CDN),该怎么解决这个问题呢?解决方法其实有很多种,我就说说我目前在用的一种方法,就是使用Haproxy中转,大致上和Haproxy安装及端口转发配置这个文章差不多。好了,废话也就不说那么多了,直接开始吧。
第一步:
需要找一台机器做中转,先安装Haproxy,参考Haproxy安装及端口转发配置这篇文章,然后我们来看看配置文件:
global ulimit-n 51200 defaults log global mode tcp option dontlognull timeout connect 1000ms timeout client 150000ms timeout server 150000ms listen status bind 0.0.0.0:1080 mode http log global stats refresh 30s stats uri /admin?stats stats realm Private lands stats auth admin:password stats hide-version frontend ssin bind *:1000-2000 default_backend ssout backend ssout server server1 11.22.33.44 maxconn 204800
我们只需要修改上面代码片段中的两处
bind *:465 // 如果是普通模式,那这里就填25,如果是SSL模式,就需要填465 server server1 11.22.33.44 maxconn 204800 //这里的IP需要改成SMTP地址的IP,ping一下SMTP域名即可得到地址
修改完成后,执行重启命令,并设为开机启动
service haproxy restart chkconfig haproxy on
第二步:
登录WEB服务器,把smtp地址写进/etc/hosts文件,指向中转服务器的IP。假如我使用的是阿里云的邮件推送,那么它的SMTP服务器域名就是:smtpdm.aliyun.com 然后编辑/etc/hosts文件
[root@sscloud ~]# vim /etc/hosts 127.0.0.1 localhost ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.16.156.98 sscloud 22.33.44.55 smtpdm.aliyun.com //22.33.44.55就是中转服务器的IP
修改完成后,执行service network restart 重启网卡即可。