使用 Postfix 从您的 Fedora 系统

沟通是关键。 您的计算机可能正试图告诉您一些重要的事情。 但是,如果您的邮件运输代理(MTA) 配置不正确,您可能没有收到通知。 Postfix 是一个 MTA 易于配置并以强大的安全记录而闻名. 请按照以下步骤确保从本地服务发送的电子邮件通知将通过 Postfix MTA 路由到您的 Internet 电子邮件帐户。

安装包

使用 dnf 安装所需的包(你配置 sudo, 对?):

$ sudo -i
# dnf install postfix mailx

如果您之前配置了不同的 MTA,则可能需要将 Postfix 设置为系统默认值。 使用替代命令设置系统默认 MTA:

$ sudo alternatives --config mta
There are 2 programs which provide 'mta'.
  Selection    Command
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2

创建一个 password_maps 文件

您将需要创建一个 Postfix 查找表条目,其中包含您要用于发送电子邮件的帐户的电子邮件地址和密码:

# [email protected]
# MY_EMAIL_PASSWORD=abcdefghijklmnop
# MY_SMTP_SERVER=smtp.gmail.com
# MY_SMTP_SERVER_PORT=587
# echo "[$MY_SMTP_SERVER]:$MY_SMTP_SERVER_PORT $MY_EMAIL_ADDRESS:$MY_EMAIL_PASSWORD" >> /etc/postfix/password_maps
# chmod 600 /etc/postfix/password_maps
# unset MY_EMAIL_PASSWORD
# history -c

如果您使用的是 Gmail 帐户,则需要为 Postfix 配置“应用程序密码”,而不是使用您的 gmail 密码。 看 ”使用应用密码登录”以获取有关配置应用程序密码的说明。

接下来,您必须针对 Postfix 查找表运行 postmap 命令以创建或更新 Postfix 实际使用的文件的散列版本:

# postmap /etc/postfix/password_maps

散列版本将具有相同的文件名,但后缀为 .db。

更新 main.cf 文件

更新 Postfix 的 main.cf 配置文件以引用您刚刚创建的 Postfix 查找表。 编辑文件并添加这些行。

relayhost = [smtp.gmail.com]:587
smtp_tls_security_level = verify
smtp_tls_mandatory_ciphers = high
smtp_tls_verify_cert_match = hostname
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/password_maps

这 example 假设您使用 Gmail 进行中继主机设置,但您可以将正确的主机名和端口替换为系统应将邮件发送到的邮件主机。

有关上述配置选项的最新详细信息,请参见手册页:

$ man postconf.5

启用、启动和测试 Postfix

更新 main.cf 文件后,启用并启动 Postfix 服务:

# systemctl enable --now postfix.service

然后你可以退出你的 sudo 使用 exit 命令以 root 身份进行会话或 Ctrl+D. 您现在应该能够使用 mail 命令测试您的配置:

$ echo 'It worked!' | mail -s "Test: $(date)" [email protected]

更新服务

如果您有类似的服务 日志表,妈妈, 失败2禁令, apcupsd 或者 证书手表 安装后,您现在可以更新他们的配置,以便他们的电子邮件通知将发送到您的互联网电子邮件地址。

或者,您可能希望将发送到本地系统根帐户的所有电子邮件配置为转到您的 Internet 电子邮件地址。 将此行添加到系统上的 /etc/aliases 文件中(您需要使用 sudo 编辑此文件,或先切换到 root 帐户):

root: [email protected]

现在运行此命令以重新读取别名:

# newaliases
  • 提示:如果您使用的是 Gmail,则可以 添加字母数字标记 在您的用户名和 @ 符号如上所示,以便更容易识别和过滤您将从计算机收到的电子邮件。

故障排除

查看邮件队列:

$ mailq

清除队列中的所有电子邮件:

# postsuper -d ALL

过滤有趣值的配置设置:

$ postconf | grep "^relayhost|^smtp_"

查看 postfix/smtp 日志:

$ journalctl --no-pager -t postfix/smtp

进行配置更改后重新加载 postfix:

$ systemctl reload postfix

摄影者 莎朗·麦卡琴不飞溅.