一、環境準備與基礎配置
1. SMTP服務開通(以qq郵箱為例)
-
登錄qq郵箱網頁端,進入「設置」-「POP3/SMTP/IMAP」
-
開啟「SMTP服務」并獲取16位授權碼(替代郵箱密碼使用)
-
記錄關鍵參數:
-
SMTP服務器地址:smtp.qq.com
-
安全端口號:465
-
加密類型:SSL
-
二、服務器端口驗證
1. 網絡連通性檢測
# 使用nmap掃描開放端口
nmap -Pn smtp.qq.com -p 25,465,587# 快速驗證SSL端口
nc -zv smtp.qq.com 465
典型輸出:
2. 端口選擇建議
端口 | 協議 | 安全性 | 適用場景 |
---|---|---|---|
25 | 明文SMTP | 低 | 不推薦使用 |
465 | SSL加密 | 高 | 推薦配置 |
587 | STARTTLS | 高 | 兼容性要求場景 |
三、郵件客戶端配置
1. mail.rc文件配置
編輯配置文件/etc/mail.rc
添加以下參數:
# SMTP服務基礎配置
set from="發件人 <yourname@qq.com>"
set smtp="smtps://smtp.qq.com:465"
set smtp-auth-user="yourname@qq.com" #須與首行郵件地址一致
set smtp-auth-password="16位授權碼"
set smtp-auth=login# SSL證書配置
set ssl-verify=ignore
set nss-config-dir=/etc/mail_certs #需手動配置,詳見--四、證書信任配置
2. 服務重啟與狀態檢查
systemctl restart postfix
systemctl status postfix -l
四、證書信任配置
1. 證書目錄創建
mkdir -p /etc/mail_certs
cd /etc/mail_certs
2. SSL證書獲取與安裝
# 提取郵件服務器證書
openssl s_client -connect smtp.qq.com:465 \| sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' > qq.crt# 添加證書到信任列表
certutil -A -n "SMTP_qq_SSL" -t "P,P,P" -d . -i qq.crt
參數解析:
-
-A
:添加證書 -
-n
:證書標識名稱 -
-t
:信任級別(P=受信任的CA) -
-d
:證書存儲目錄
五、郵件發送驗證
1. 命令行發送測試
# 發送文本內容
echo "郵件正文" | mail -s "測試主題" recipient@example.com# 發送文件內容
echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/mail.txt
mailx -v -s "測試主題" recipient@example.com < /tmp/mail.txt
2. 日志查看與排錯
tail -f /var/log/maillog
# 成功發送的關鍵詞:status=sent (250 Message accepted)
六、安全增強建議
1. 權限管理
chmod 600 /etc/mail.rc # 配置文件權限
chown root:root /etc/mail_certs # 證書目錄歸屬
2. 定期維護
-
每90天更新授權碼
-
使用
certutil -L -d /etc/mail_certs
檢查證書有效期 -
清理舊日志:
logrotate /etc/logrotate.d/maillog