在 Ubuntu 上配置 Postfix 和 Gmail

linuxoperating systemopen source更新于 2026/1/21 8:52:17

简介

Postfix 是用于发送和接收邮件的邮件传输代理。它在 Ubuntu 服务器上的安装和配置非常简单。

在本教程中,我们将向您展示如何在 Ubuntu 上配置 Postfix 和 Gmail。

先决条件

继续之前,您需要以下信息 -

  • 一个正在运行的 Ubuntu 服务器

  • 一个 Gmail 帐户

  • 一个配置为指向服务器 IP 地址的有效域名

步骤 1:安装 Postfix

第一步,在您的 Ubuntu 系统上安装 Postfix。您可以通过运行以下命令来执行此操作 -

sudo apt-get install postfix

安装过程中,系统会提示您选择邮件服务器配置及其选项。您应该选择"Internet 站点",并在提示时填写服务器的域名。

步骤 2:配置 Postfix

安装 Postfix 后,您需要将其配置为使用 Gmail 作为所有电子邮件的中继。使用以下命令打开 Postfix 主配置文件 -

sudo nano /etc/postfix/main.cf

在文件末尾添加以下几行 -

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

保存并退出文件。

步骤 3:创建 Gmail 应用密码

要将 Gmail 用作中继服务器,您需要在 Gmail 配置中创建应用密码。此密码用于验证 Gmail 服务器的身份验证,以便中继电子邮件。要创建应用密码,您可以按照以下步骤操作:

  • 登录您的 Gmail 帐户。

  • 前往您的 Google 帐户设置页面。

  • 点击"安全"。

  • 在"登录 Google"下,点击"应用密码"。

  • 选择"邮件"作为应用,并选择"其他(自定义名称)"作为设备。

  • 输入密码名称,然后点击"生成"。

  • 记下生成的密码。

步骤 4:在 Postfix 中添加 Gmail 凭据

现在您已经创建了应用密码,您需要将其添加到 Postfix。运行以下命令,在 /etc/postfix 目录中创建一个名为"sasl_passwd"的新文件 -

sudo nano /etc/postfix/sasl_passwd

将以下行添加到文件中,将 "your-email@gmail.com" 替换为您的 Gmail 地址,将 "your-password" 替换为您生成的应用密码 -

[smtp.gmail.com]:587 your-email@gmail.com:your-password

保存并退出文件。

现在,使用以下命令对 sasl_passwd 文件进行哈希处理 -

sudo postmap /etc/postfix/sasl_passwd

步骤 5:重启Postfix

现在使用以下命令重启 Postfix 服务以应用更改 -

sudo systemctl restart postfix

步骤 6:测试配置

要测试配置,请使用"mail"命令发送一封电子邮件,并将 "recipient@email.com" 替换为您要发送邮件的电子邮件地址 -

echo "Test email" | mail -s "Test subject" recipient@email.com

如果所有配置均正确无误,则收件人应该能够发送和接收电子邮件。

高级配置选项

还有一些其他配置选项,您可以使用它们来微调 Postfix 和 Gmail 的集成。以下是一些最有用的选项 -

  • "smtp_tls_CAfile" - 此选项允许您指定用于 TLS 加密的自定义证书颁发机构 (CA) 文件。如果您想使用与 Ubuntu 默认 CA 不同的 CA,这将非常有用。

  • "smtp_tls_security_level" - 此选项确定 TLS 加密所需的安全级别。可能的值为"may"、"encrypt"、"dane"和"verify"。默认值为"may",表示尽可能使用 TLS 加密。

  • "smtp_tls_mandatory_protocols" − 此选项指定允许的最低 TLS 协议版本。可能的值为"TLSv1"、"TLSv1.1"和"TLSv1.2"。默认值为"TLSv1"。

  • "smtp_tls_mandatory_ciphers" − 此选项指定允许的最低 TLS 密码。默认值为"high"。

  • "smtp_tls_exclude_ciphers" − 此选项允许您从允许的密码列表中排除特定的 TLS 密码。

  • "smtp_tls_note_starttls_offer" − 此选项在邮件头中添加一条注释,指示服务器在 SMTP 会话期间是否提供了 STARTTLS 命令。

您可以将这些选项添加到 /etc/postfix/main.cf 文件中,就像 relayhost 和 sasl_passwd 选项一样。以下是使用部分选项的示例配置 -

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = encrypt
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3
smtp_tls_mandatory_ciphers = high
smtp_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK、SRP、CAMELLIA128、CAMELLIA256、SEED
smtp_tls_note_starttls_offer = yes

此配置指定以下选项 -

  • relayhost 设置为 smtp.gmail.com:587,即 Gmail SMTP 服务器及其端口号。

  • smtp_use_tls 设置为"yes",为 SMTP 连接启用 TLS 加密。

  • smtp_sasl_auth_enable 设置为"yes",启用 SASL 身份验证。

  • smtp_sasl_password_maps 设置为 /etc/postfix/sasl_passwd,其中包含 Gmail凭据。

  • smtp_sasl_security_options 设置为"noanonymous",要求客户端使用 SASL 身份验证来标识自己。

  • smtp_tls_CAfile 设置为 /etc/ssl/certs/ca-certificates.crt,这是 Ubuntu 的默认 CA 文件。

  • smtp_tls_security_level 设置为"encrypt",要求使用 TLS 加密。

  • smtp_tls_mandatory_protocols 设置为"!SSLv2,!SSLv3",不允许使用 SSLv2 和 SSLv3。

  • smtp_tls_mandatory_ciphers 设置为"high",要求使用强 TLS密码。

  • smtp_tls_exclude_ciphers 设置为不允许使用的弱 TLS 密码列表。

  • smtp_tls_note_starttls_offer 设置为"yes",这会在邮件头中添加一条注释,指示服务器是否提供了 STARTTLS 命令。

总结

在本教程中,我们向您展示了如何在 Ubuntu 上配置 Postfix 和 Gmail。此配置允许您使用 Gmail 帐户收发电子邮件。按照以下步骤,您可以轻松地在 Ubuntu 服务器上设置 Postfix,以使用 Gmail 作为中继。


相关文章


有用资源