我跟着这关于使用我的 FastMail 帐户作为 SMTP 中继将我的 ubuntu 服务器设置为仅发送邮件服务器的略微过时的教程,但是我遇到了一些问题。
当我启动 postfix 服务时,一切似乎正常:
Jul 22 15:56:34 core systemd[1]: Starting LSB: Postfix Mail Transport Agent...
Jul 22 15:56:34 core postfix[7893]: * Starting Postfix Mail Transport Agent postfix
Jul 22 15:56:34 core postfix[7985]: Postfix is running with backwards-compatible default settings
Jul 22 15:56:34 core postfix[7985]: See http://www.postfix.org/COMPATIBILITY_README.html for details
Jul 22 15:56:34 core postfix[7985]: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
Jul 22 15:56:34 core postfix[7893]: ...done.
Jul 22 15:56:34 core systemd[1]: Started LSB: Postfix Mail Transport Agent.
Jul 22 15:56:34 core postfix/master[8022]: daemon started -- version 3.1.0, configuration /etc/postfix
但是,如果我尝试使用发送电子邮件,则会收到以下错误:echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]
Jul 22 15:58:06 core postfix/qmgr[8026]: 35FD8120B98: from=<[email protected]>, size=328, nrcpt=1 (queue active)
Jul 22 15:58:06 core postfix/smtp[8035]: error: open database /etc/postfix/sasl_password.db: No such file or directory
Jul 22 15:58:06 core postfix/smtp[8035]: warning: hash:/etc/postfix/sasl_password is unavailable. open database /etc/postfix/sasl_password.db: No such file or
Jul 22 15:58:06 core postfix/smtp[8035]: warning: hash:/etc/postfix/sasl_password lookup error for "smtp.fastmail.com"
Jul 22 15:58:06 core postfix/smtp[8035]: warning: 35FD8120B98: smtp_sasl_password_maps lookup error
Jul 22 15:58:06 core postfix/smtp[8035]: 35FD8120B98: local data error while talking to smtp.fastmail.com[66.111.4.140]
Jul 22 15:58:07 core postfix/smtp[8035]: warning: hash:/etc/postfix/sasl_password is unavailable. open database /etc/postfix/sasl_password.db: No such file or
Jul 22 15:58:07 core postfix/smtp[8035]: warning: hash:/etc/postfix/sasl_password lookup error for "smtp.fastmail.com"
Jul 22 15:58:07 core postfix/smtp[8035]: warning: 35FD8120B98: smtp_sasl_password_maps lookup error
Jul 22 15:58:07 core postfix/smtp[8035]: 35FD8120B98: to=<[email protected]>, relay=smtp.fastmail.com[66.111.4.139]:587, delay=1.4, delays=0.03/0.02/1.4/0
我尝试按照建议将 /etc/postfix 的所有者更改为 postfix这个帖子但这似乎是一个不同的问题,因为它找不到 /etc/postfix/sasl_passwd 和 /etc/postfix/sasl_password,而不是无法写入它们。
我也尝试跳过将 /etc/postfix/sasl_password 的权限设置为 400,但这也没有结果。
当然,我创建了一个应用程序密码,并在发送命令中将电子邮件地址更改为合理的地址,所以这不是问题。
我究竟做错了什么?
答案1
好的,经过一番挖掘,我找到了这个问题的解决方案。日志中说找不到 sasl_password 或 sasl_password.db。这是有道理的,因为我的配置文件包含以下行:
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
但是我的 /etc/postfix 目录中有这个:
-r-------- 1 root root 59 Jul 22 15:56 sasl_password
-rw------- 1 root root 12288 Jan 7 02:39 sasl_password.db
更改这些文件的名称显然可以解决问题。