現在很多 ISP 也會將用戶的 port 25 封鎖,只容許用戶使用 ISP 提供的 smtp server。如果想架一台 smtp server 給被封鎖 port 25 的用戶使用,可以在 email server 多開一個 port 作為與用戶的連線,只要用戶在電郵軟件修改 smtp port 便可以,以下是在 QMail 設定多一個 port 的方法:

假設要開啟的 port 為 1225,首先將 /var/qmail/supervise/qmail-smtpd 整個目錄複製多一份,一般上我會在複製目錄名稱後面加上 port 以便不會忘記:

# cp -Rp /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-smtpd-1225

然後要修改 /var/qmail/supervise/qmail-smtpd-1225/run 檔案,設定要監聽的 port,應該會找到類以這一行:

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

將 “smtp” 改成要新增的 port,那麼就是要改成:

-u "$QMAILDUID" -g "$NOFILESGID" 0 1225

修改完以上檔案後,便要修改 /var/qmail/supervise/qmail-smtpd-1225/log/run 檔案,最後應該會有一行是指向 smtpd 的紀綠檔,要指向一個新目錄:

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

然後建立儲存 smtpd-1225 的紀錄檔目錄:

# mkdir /var/log/qmail/smtpd-1225/
# chown qmaill /var/log/qmail/smtpd-1225/

在 /service 目錄下建立一個 soft link 到 /var/qmail/supervise/qmail-smtpd-1225/:

# ln -s /var/qmail/supervise/qmail-smtpd-1225/ /service/qmail-smtpd-1225/

到這裡就只剩下修改 qmailctl 檔案,裡面有一行是:

svclist="qmail-send qmail-smtpd"

需要加上新增的 port 才可正確啟動:

svclist="qmail-send qmail-smtpd qmail-smtpd-1225"

修改後重新啟動 qmail 便完成了。