qmail邮件服务新增SMTP端口

公司里有搭建邮件服务器,方便同事间的交流,但自搭建运行以来,便一直存在一个问题,香港同事回港后,使用客户端只可以收取公司服务器邮件,而无法通过客户端由公司邮件服务器发送邮件,香港办事处则可以(商用宽频),但其他非公司邮件则收发正常.在本文方法之前的解决办法是发公司邮件通过WEB方式发送.经查,香港同事回港后(主要是使用家居宽频)无法通过客户端发送公司邮件的原因是由于香港ISP封锁了非服务商提供的所有25端口,例如:如果你是香港HKBN的家居宽频用户,则只有往HKBN的25端口可通行,其他方向的一律DROP,换言之,要通过邮件客户端25端口发送邮件,必须经HKBN,由他代转发,看下图会更加明白,这是一位使用香港PCCW网上行邮件服务的用户,在邮件客户端的设置.

香港HKBN SMTP服务器

鉴于以上情况,为运行中的qmail邮件服务器新增了一个SMTP端口,已正常运行较长一段时间,这里发文说下步骤与方法,共享给有需要的网友,或许有网友会有疑问,那你的公司邮件也由HKBN来转发不就行了么?为何如此麻烦?其实我们的邮件服务器只供公司内部交流,即是内部邮件服务器,不对公网开放.通常来说,本文只适用于中国大陆之外的用户.因为目前大陆ISP只是封锁个人80端口,对于25端口并没发现或听闻有封锁.

qmail邮件服务新增SMTP端口方法与具体步骤:(为了方便,本文新增SMTP端口为465)

第一步,将/var/qmail/supervise/qmail-smtpd复制多一份并改名,为方便日后查询,建议在名字后面加上新增的端口号,如SMTP-465之类的;

1
# cp -Rp /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-smtpd-465

第二步,找到并修改/var/qmail/supervise/qmail-smtpd-465/run文件,设定要新增的监听端口;

-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \

将这一行结尾处smtp修改为新增加的监听端口号,即:

-u "$QMAILDUID" -g "$NOFILESGID" 0 465 \

第三步,修改/var/qmail/supervise/qmail-smtpd-465/log/run文件,最后有一行是指向smtpd的纪录,修改指向一个新目录;

1
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd-465

第四步,建立smtpd-465记录目录;

1
2
# mkdir /var/log/qmail/smtpd-465/
# chown qmaill/var/log/qmail/smtpd-465/

第五步,在/service目录下新建一个soft link 到 /var/qmail/supervise/qmail-smtpd-465/;

1
# ln -s /var/qmail/supervise/qmail-smtpd-465/ /service/qmail-smtpd-465/

第六步,修改qmailctl文件;

找到这一行

svclist="qmail-send qmail-smtpd"

添加新增的监听端口

svclist="qmail-send qmail-smtpd qmail-smtpd-465"

保存退出即可,最后netstat -ntlp查看端口状态,如果没发现,重启下qmail服务试试.(我添加后无须重启qmail)