配置Postfix以使用Gmail作为邮件转发

如果您有Gmail帐户,则可以将MTA配置为通过Gmail中继外发邮件。这有助于您的Gmail的可靠性和优势。

如果您有Gmail帐户,则可以配置您的MTA以通过Gmail中继传出的邮件。 这给您的Gmail的可靠性和强大的基础设施带来好处,并为您提供从命令行发送电子邮件的简单方法。

在本教程中,我们将使用Postfix作为我们的MTA。 Postfix是一个免费,开源,积极维护,高度安全的邮件传输代理。

在每个步骤中,我们将介绍以下操作系统的具体说明:

  • Debian 8
  • Ubuntu 15.10
  • CentOS 7
  • OpenSUSE 13.2
  • Arch Linux 2016.02.01
  • FreeBSD 10.2

我们还将安装mailutils / mailx ,以便我们可以发送测试电子邮件。 必要时,我们将安装补充的SASL库。

所有以开头的命令需要root权限。

1.安装所需的软件

Debian,Ubuntu:

apt-get update && apt-get install postfix mailutils

当提示“一般类型的邮件配置”时,选择“ Internet站点”

当提示输入“邮件名称”时,选择要在邮件头中使用的主机名作为电子邮件的来源。 一个完全限定的域名是首选,但使用您的机器的简单主机名可以。 无论您在这里输入的内容如何,​​您的退货地址都会显示给收件人作为您的Gmail地址。

可能会提示您设置“根和邮局管理员邮件收件人”。 输入root用户或应接收邮件子系统通知的其他用户。

对于任何其他提示,您可以选择默认值。

Fedora:

dnf update && dnf install postfix mailx

CentOS:

yum update && y y安装postfix mailx cyrus-sasl cyrus-sasl-plain

OpenSUSE:

zypper update && zypper install postfix mailx cyrus-sasl

Arch Linux:

pacman -Sy postfix mailutils

FreeBSD:

从ports集合中编译Postfix以纳入对SASL的支持:

portsnap fetch extract update

cd /usr/ports/mail/postfix

make config

在配置对话框中,选择SASL支持 。 所有其他选项可以保持不变。 然后:

make install clean

Mailx可以从二进制包中安装:

pkg install mailx

2.配置Gmail验证

创建或修改Postfix将使用该密码文件来建立与Gmail的身份验证。 在下面的验证信息中,使用您的Gmail 密码替换您的Gmail用户名和密码。 如果您使用自定义Gmail Apps域名,则可以将gmail.com替换为Google Apps域。

密码文件将驻留在Postfix配置目录中。 该文件可以命名任何你喜欢,但推荐的文件名是sasl_passwd

Debian,Ubuntu,Fedora,CentOS,OpenSUSE,Arch Linux:

Postfix配置文件驻留在目录/ etc / postfix中 。 创建或编辑密码文件:

vi /etc/postfix/sasl_passwd

添加行:

[smtp.gmail.com]:587    username@gmail.com:password

保存并关闭文件。 您的Gmail密码存储为纯文本,因此使文件只能由root访问:

# chmod 600 /etc/postfix/sasl_passwd

FreeBSD:

Postfix配置文件驻留在目录/ usr / local / etc / postfix中 。 创建或编辑密码文件:

vi /usr/local/etc/postfix/sasl_passwd

添加行:

[smtp.gmail.com]:587    username@gmail.com:password

保存并关闭文件。 使其只能由root访问:

chmod 600 /usr/local/etc/postfix/sasl_passwd

3.配置Postfix

在Postfix配置文件main.cf中必须设置六个参数。 参数为:

relayhost ,指定邮件转发主机和端口号。 主机名将括在括号中以指定不需要MX查找。

smtp_use_tls ,它启用(或禁用)传输层安全性。

smtp_sasl_auth_enable ,它启用(或禁用)SASL身份验证。

smtp_sasl_security_options将在以下配置中设置为空,以确保不使用Gmail不兼容的安全选项。

smtp_sasl_password_maps ,它指定要使用的密码文件。 该文件将在后续步骤中通过postmap进行编译和散列。

smtp_tls_CAfile ,它指定验证服务器身份时要使用的证书颁发机构的列表。

Debian,Ubuntu,Arch Linux:

编辑主Postfix配置文件:

vi /etc/postfix/main.cf

添加或修改以下值:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

保存并关闭文件。

Fedora,CentOS:

编辑主Postfix配置文件:

vi /etc/postfix/main.cf

添加或修改以下值:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

保存并关闭文件。

OpenSUSE:

编辑主Postfix配置文件:

vi /etc/postfix/main.cf

添加或修改以下值:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem

保存并关闭文件。

OpenSUSE还要求修改Postfix主进程配置文件master.cf 。 打开它进行编辑:

vi /etc/postfix/master.cf

找到如下行:

#tlsmgr unix - - n 1000? 1 tlsmg

取消注释,所以它是:

tlsmgr unix - - n 1000? 1 tlsmg

保存并关闭文件。

FreeBSD:

编辑主Postfix配置文件:

vi /usr/local/etc/postfix/main.cf

添加或修改以下值:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem

保存并关闭文件。

4.处理密码文件

使用postmap来编译和散列sasl_passwd的内容。 结果将存储在文件sasl_passwd.db中的Postfix配置目录中。

Debian,Ubuntu,Fedora,CentOS,OpenSUSE,Arch Linux:

postmap /etc/postfix/sasl_passwd

FreeBSD:

postmap /usr/local/etc/postfix/sasl_passwd

5.重启Postfix

重新启动Postfix服务,使您的更改生效。

Debian,Ubuntu,Fedora,CentOS,OpenSUSE,Arch Linux:

systemctl restart postfix.service

FreeBSD:

仅为此会话启动Postfix服务:

service postfix onestart

要在系统初始化时自动启动Postfix,请打开/etc/rc.conf进行编辑:

vi /etc/rc.conf

添加行:

postfix_enable=YES

保存并关闭文件。 然后您可以运行:

service postfix start

启动Postfix

6.在Gmail中启用“较不安全的应用”

默认情况下,您的Gmail帐户只允许最安全的登录,例如登录到网络上的Gmail。 要允许中继请求,请登录到您的Gmail帐户,然后打开允许不安全的应用

有关详细信息,请查看Google支持文档“ 允许安全性较低的应用访问您的帐户 ”。

7.发送测试电子邮件

通过使用邮件命令发送邮件来测试您的新配置。 跑:

mail -s "Test subject" recipient@domain.com

您将看到一个空白行(或CC:字段,您可以按Enter键绕过)。 键入消息的正文,按Enter键换行。 撰写电子邮件时,请输入CTRL-D进行发送。 要取消电子邮件,请按CTRL-C两次。

要发送预先设置的电子邮件,请使用以下命令:

mail -s "Subject Here" recipient@domain.com < textfile

其中textfile是包含要发送的文本的文件的名称。

故障排除

如果不起作用,请检查日志是否有任何Postfix错误:

Debian:

less /var/log/mail.log

Ubuntu,Fedora,CentOS,OpenSUSE,Arch Linux:

journalctl

FreeBSD:

less /var/log/maillog

如果您从Gmail收到身份验证错误,请验证您的Gmail帐户设置中是否启用了允许更少安全的应用 ,如第6步中所述。

验证密码文件sasl_passwd是否存在,并且其内容的格式正确,如第2步中所述。如果对密码文件进行了任何更改,请确保重复第4步和5以散列新的密码文件并重新启动Postfix。

如果看到任何TLS错误,请仔细检查main.cf中的配置,如第3步中所述。如果进行任何配置更改,请按照第5步中的说明重新启动Postfix。