[记录]Proxmox VE 通过外部 SMTP 服务器发邮件,同样适用其他调用Postfix的服务
PVE默认发送的邮件会被丢垃圾箱,所以想改为自己的SMTP
安装SASL依赖
SSH登录或在Web控制面板点击>_Shell
输入:
apt-get install -y libsasl2-modules
配置Postfix信息
修改 /etc/postfix/main.cf
尾部添加:
relayhost = smtp.exmail.qq.com:465
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sender_dependent_authentication = yes
smtp_generic_maps = hash:/etc/postfix/generic
smtp_use_tls = yes
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
relayhost
需要改为自己的SMTP
服务和SSL
端口号
注意 /etc/postfix/main.cf
文件应该还有一个内容为空的 relayhost
默认配置请删掉或者注释
配置SMTP信息
修改 /etc/postfix/sasl_passwd
文件,内容格式示例:
smtp.exmail.qq.com sendmail@domail.com:password
这里的SMTP
和和上面的relayhost
保持一致,但是不需要端口号,sendmail@domail.com
和password
改为你自己的
修改完成后执行命令:
postmap /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
重写发件人
修改 /etc/postfix/generic
文件,内容格式示例:
myhostname sendmail@domail.com
其中 myhostname
跟 /etc/postfix/main.cf
内的值保持一致
修改完成后执行命令:
postmap /etc/postfix/generic
重启Postfix服务
执行命令
systemctl reload postfix
也可执行
postfix reload
可以直观的看到配置文件是否改错,比如如果没有注释原来的relayhost
会报错:
postfix: warning: /etc/postfix/main.cf, line 24: overriding earlier entry: relayhost=
测试
执行命令
echo "Test mail from postfix" | mail -s "Test Postfix" test@test.com
或者
echo "test" | /usr/bin/pvemailforward
上面最后的 test@test.com
改为你自己的,如果没有收到邮件,检查 /var/log/mail.info
文件或在PVE控制面板点击 系统->Syslog
查看是否有相关报错
比如如果/etc/postfix/generic
配置错误会提示:
May 15 20:29:53 pve postfix/pickup[25659]: 1EA85480C6F: uid=0 from=<root>
May 15 20:29:53 pve postfix/cleanup[25710]: 1EA85480C6F: message-id=<20210515122953.1EA85480C6F@pve.马赛克.com>
May 15 20:29:53 pve postfix/qmgr[25660]: 1EA85480C6F: from=<root@pve.马赛克.com>, size=392, nrcpt=1 (queue active)
May 15 20:29:53 pve postfix/smtp[25714]: 1EA85480C6F: to=<马赛克@马赛克.com>, relay=smtp.exmail.qq.com[112.90.80.126]:465, delay=0.5, delays=0.07/0/0.37/0.06, dsn=5.0.0, status=bounced (host smtp.exmail.qq.com[112.90.80.126] said: 501 mail from address must be same as authorization user (in reply to MAIL FROM command))
如果你也使用腾讯的域名邮箱,可以在设置->收发信设置
勾选保存已发送邮件到服务器
并保存,就可以很直观的在已发送查看发送情况。
你可以在其他邮件客户端测试SMTP信息和密码可用,以减少配置耗时。