Postfix是一个易于配置的MTA,并且具有强大的安全记录,请按照以下步骤操作,以确保从本地服务发送的电子邮件通知将通过Postfix MTA路由到你的Internet电子邮件帐户,以Fedora系统为例。
安装包 使用dnf安装所需的软件包(需要配置sudo,参考配置Fedora系统以使用sudo的方法): $ sudo -i # dnf install postfix mailx 如果你以前配置了不同的MTA,则可能需要将Postfix设置为系统默认值,使用alternatives命令设置系统默认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查找表条目,其中包含你要用于发送电子邮件的帐户的电子邮件地址和密码: # MY_EMAIL_ADDRESS=glb@gmail.com # 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配置“app password”,而不是使用你的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 该示例假定你使用Gmail进行中继主机设置,但你可以将正确的主机名和端口替换为系统应将邮件发送到的邮件主机。 有关上述配置选项的最新详细信息,请参见手册页: $ man postconf.5
启用、启动和测试Postfix 更新main.cf文件后,启用并启动Postfix服务: # systemctl enable --now postfix.service 然后,可以使用exit命令或Ctrl+D以root身份退出sudo会话,现在应该可以使用mail命令测试你的配置: $ echo 'It worked!' | mail -s "Test: $(date)" glb@gmail.com
更新服务 如果你安装了logwatch、mdadm、fail2ban(在服务器Ubuntu Server 18.04版本下安装fail2ban的方法)、apcupsd或certwatch等服务,你现在可以更新其配置,以便他们的电子邮件通知将转到你的Internet电子邮件地址。 你可能希望将发送到本地系统root帐户的所有电子邮件配置为转到你的Internet电子邮件地址,将此行添加到系统上的/etc/aliases文件中(你需要使用sudo编辑此文件,或首先切换到root帐户): root: glb+root@gmail.com 现在运行此命令重新读取别名: # newaliases 提示:如果你使用的是Gmail,则可以在用户名和@符号之间添加字母数字标记,如上所示,以便更轻松地识别和过滤你将从计算机收到的电子邮件。
故障排除 查看邮件队列: $ mailq 清除队列中的所有电子邮件: # postsuper -d ALL 过滤interesting值的配置设置: $ postconf | grep "^relayhost\|^smtp_" 查看postfix/smtp日志: $ journalctl --no-pager -t postfix/smtp 进行配置更改后重新加载后缀: $ systemctl reload postfix
相关主题 |