[记录]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.compassword 改为你自己的

修改完成后执行命令:

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信息和密码可用,以减少配置耗时。

标签: smtp, pve, postfix

添加新评论