翻译完成

This commit is contained in:
MjSeven 2019-08-11 20:43:40 +08:00
parent 6e41b27261
commit a68264cf30
2 changed files with 170 additions and 179 deletions

View File

@ -1,179 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (MjSeven)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Use Postfix to get email from your Fedora system)
[#]: via: (https://fedoramagazine.org/use-postfix-to-get-email-from-your-fedora-system/)
[#]: author: (Gregory Bartholomew https://fedoramagazine.org/author/glb/)
Use Postfix to get email from your Fedora system
======
![][1]
Communication is key. Your computer might be trying to tell you something important. But if your mail transport agent ([MTA][2]) isnt properly configured, you might not be getting the notifications. Postfix is a MTA [thats easy to configure and known for a strong security record][3]. Follow these steps to ensure that email notifications sent from local services will get routed to your internet email account through the Postfix MTA.
### Install packages
Use _dnf_ to install the required packages ([you configured][4] _[sudo][4]_[, right?][4]):
```
$ sudo -i
# dnf install postfix mailx
```
If you previously had a different MTA configured, you may need to set Postfix to be the system default. Use the _alternatives_ command to set your system default 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
```
### Create a _password_maps_ file
You will need to create a Postfix lookup table entry containing the email address and password of the account that you want to use to for sending email:
```
# 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
```
If you are using a Gmail account, youll need to configure an “app password” for Postfix, rather than using your gmail password. See “[Sign in using App Passwords][5]” for instructions on configuring an app password.
Next, you must run the _postmap_ command against the Postfix lookup table to create or update the hashed version of the file that Postfix actually uses:
```
# postmap /etc/postfix/password_maps
```
The hashed version will have the same file name but it will be suffixed with _.db_.
### Update the _main.cf_ file
Update Postfixs _main.cf_ configuration file to reference the Postfix lookup table you just created. Edit the file and add these lines.
```
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
```
The example assumes youre using Gmail for the _relayhost_ setting, but you can substitute the correct hostname and port for the mail host to which your system should hand off mail for sending.
For the most up-to-date details about the above configuration options, see the man page:
```
$ man postconf.5
```
### Enable, start, and test Postfix
After you have updated the main.cf file, enable and start the Postfix service:
```
# systemctl enable --now postfix.service
```
You can then exit your _sudo_ session as root using the _exit_ command or **Ctrl+D**. You should now be able to test your configuration with the _mail_ command:
```
$ echo 'It worked!' | mail -s "Test: $(date)" glb@gmail.com
```
### Update services
If you have services like [logwatch][6], [mdadm][7], [fail2ban][8], [apcupsd][9] or [certwatch][10] installed, you can now update their configurations so that their email notifications will go to your internet email address.
Optionally, you may want to configure all email that is sent to your local systems root account to go to your internet email address. Add this line to the _/etc/aliases_ file on your system (youll need to use _sudo_ to edit this file, or switch to the _root_ account first):
```
root: glb+root@gmail.com
```
Now run this command to re-read the aliases:
```
# newaliases
```
* TIP: If you are using Gmail, you can [add an alpha-numeric mark][11] between your username and the **@** symbol as demonstrated above to make it easier to identify and filter the email that you will receive from your computer(s).
### Troubleshooting
**View the mail queue:**
```
$ mailq
```
**Clear all email from the queues:**
```
# postsuper -d ALL
```
**Filter the configuration settings for interesting values:**
```
$ postconf | grep "^relayhost\|^smtp_"
```
**View the _postfix/smtp_ logs:**
```
$ journalctl --no-pager -t postfix/smtp
```
**Reload _postfix_ after making configuration changes:**
```
$ systemctl reload postfix
```
* * *
_Photo by _[_Sharon McCutcheon_][12]_ on [Unsplash][13]_.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/use-postfix-to-get-email-from-your-fedora-system/
作者:[Gregory Bartholomew][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/glb/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2019/07/postfix-816x345.jpg
[2]: https://en.wikipedia.org/wiki/Message_transfer_agent
[3]: https://en.wikipedia.org/wiki/Postfix_(software)
[4]: https://fedoramagazine.org/howto-use-sudo/
[5]: https://support.google.com/accounts/answer/185833
[6]: https://src.fedoraproject.org/rpms/logwatch
[7]: https://fedoramagazine.org/mirror-your-system-drive-using-software-raid/
[8]: https://fedoraproject.org/wiki/Fail2ban_with_FirewallD
[9]: https://src.fedoraproject.org/rpms/apcupsd
[10]: https://www.linux.com/learn/automated-certificate-expiration-checks-centos
[11]: https://gmail.googleblog.com/2008/03/2-hidden-ways-to-get-more-from-your.html
[12]: https://unsplash.com/@sharonmccutcheon?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[13]: https://unsplash.com/search/photos/envelopes?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

View File

@ -0,0 +1,170 @@
[#]: collector: (lujun9972)
[#]: translator: (MjSeven)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Use Postfix to get email from your Fedora system)
[#]: via: (https://fedoramagazine.org/use-postfix-to-get-email-from-your-fedora-system/)
[#]: author: (Gregory Bartholomew https://fedoramagazine.org/author/glb/)
使用 Postfix 从 Fedora 系统中获取电子邮件
======
![][1]
交流是非常重要的。你的电脑可能正试图告诉你一些重要的事情。但是,如果你没有正确配置邮件传输代理([MTA][2]那么你可能不会收到通知。Postfix 是一个[易于配置且以强大的安全记录而闻名][3]的 MTA。遵循以下步骤以确保从本地服务发送的电子邮件通知将通过 Postfix MTA 路由到你的 Internet 电子邮件账户中。
### 安装软件包
使用 _dnf_ 来安装一些必须软件包([你应该配置了][4] _[sudo][4]_[,对吧?][4]:
```
$ 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
```
### 创建一个 _密码映射_ 文件
你需要创建一个 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 配置一个“应用程序密码”而不是使用你的 Gmail 密码。有关配置应用程序密码的说明,参阅“[使用应用程序密码登录][5]”。
接下来,你必须对 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 作为 _relayhost_ 设置,但是你可以用正确的主机名和端口替换系统应该将邮件发送到的邮件主机。
有关上述配置选项的最新详细信息,参考 man 帮助:
```
$ 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][6]、[mdadm][7]、[fail2ban][8]、[apcupsd][9] 或 [certwatch][10] 这样的服务,你现在可以更新它们的配置,以便它们的电子邮件通知转到你的 Internet 电子邮件地址。
另外,你可能希望将发送到本地系统 root 账户的所有电子邮件都转到 Internet 电子邮件地址中,将以下行添加到系统的 _/etc/alises_ 文件中(你需要使用 _sudo_ 编辑此文件,或首先切换到 _root_ 账户):
```
root: glb+root@gmail.com
```
现在运行此命令重新读取别名:
```
# newaliases
```
* 提示: 如果你使用的是 Gmail那么你可以在用户名和 **@** 符号之间[添加字母数字标记][11],如上所示,以便更轻松地识别和过滤从计算机收到的电子邮件。
### 常用命令
**查看邮件队列**
```
$ mailq
```
**清除队列中的所有电子邮件:**
```
# postsuper -d ALL
```
**过滤设置,以获得感兴趣的值**
```
$ postconf | grep "^relayhost\|^smtp_"
```
**查看 _postfix/smtp_ 日志:**
```
$ journalctl --no-pager -t postfix/smtp
```
**进行配置更改后重新加载 _postfix_**
```
$ systemctl reload postfix
```
* * *
_照片由 _[_Sharon McCutcheon_][12]_  [Unsplash][13] 提供_。
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/use-postfix-to-get-email-from-your-fedora-system/
作者:[Gregory Bartholomew][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/glb/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2019/07/postfix-816x345.jpg
[2]: https://en.wikipedia.org/wiki/Message_transfer_agent
[3]: https://en.wikipedia.org/wiki/Postfix_(software)
[4]: https://fedoramagazine.org/howto-use-sudo/
[5]: https://support.google.com/accounts/answer/185833
[6]: https://src.fedoraproject.org/rpms/logwatch
[7]: https://fedoramagazine.org/mirror-your-system-drive-using-software-raid/
[8]: https://fedoraproject.org/wiki/Fail2ban_with_FirewallD
[9]: https://src.fedoraproject.org/rpms/apcupsd
[10]: https://www.linux.com/learn/automated-certificate-expiration-checks-centos
[11]: https://gmail.googleblog.com/2008/03/2-hidden-ways-to-get-more-from-your.html
[12]: https://unsplash.com/@sharonmccutcheon?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[13]: https://unsplash.com/search/photos/envelopes?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText