在 Ubuntu 上使用 Gmail 配置 Sendmail


Sendmail 是一种流行的邮件传输代理,用于在计算机之间发送电子邮件。它可能默认安装在 Ubuntu 上,这使得它成为从服务器发送电子邮件的便捷选择。如果您使用 Gmail,您可以配置 Sendmail 通过 Gmail 帐户发送电子邮件。

在本文中,我们将向您展示在 Ubuntu 上使用 Gmail 配置 Sendmail 的过程。

要求

在开始之前,有一些要求需要在 Ubuntu 上使用 Gmail 配置 Sendmail:

  • 一个 Gmail 帐户

  • 一个 Ubuntu 服务器

  • 在您的 Ubuntu 服务器上安装 Sendmail

  • 在您的 Ubuntu 服务器上安装 OpenSSL

如果您没有安装 OpenSSL,可以通过运行以下命令来安装它:

sudo apt-get install openssl

步骤 1:创建 Gmail 应用密码

要使用 Gmail 配置 Sendmail,您需要创建一个应用密码。这是一个唯一的密码,您将使用它来对您的电子邮件帐户进行身份验证,并与 Sendmail 配合使用。

要创建应用密码,请按照以下步骤操作:

  • 登录您的 Gmail 帐户。

  • 点击右上角的个人资料图片,然后选择“Google 帐户”。

  • 点击左侧菜单中的“安全”。

  • 向下滚动到“登录其他网站”部分,然后点击“应用密码”。

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

  • 为您的设备输入一个自定义名称,然后点击“生成”。

  • 记下生成的 16 位密码。

步骤 2:配置 Sendmail

现在您已为您的 Gmail 帐户创建了应用密码,您可以配置 Sendmail 以使用它来发送电子邮件。请按照以下步骤配置 Sendmail:

  • 通过运行以下命令打开 Sendmail 配置文件:

sudo nano /etc/mail/sendmail.mc
  • 在文件的末尾添加以下行:

define(SMART_HOST',[smtp.gmail.com]')dnl 
define(RELAY_MAILER_ARGS', TCP $h 587')dnl 
define(ESMTP_MAILER_ARGS', TCP $h 587')dnl 
define(confAUTH_OPTIONS', A p')dnl 
TRUST_AUTH_MECH(EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
define(confAUTH_MECHANISMS', EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
FEATURE(authinfo',`hash /etc/mail/auth/client-info')dnl
  • 保存并关闭文件。

  • 通过运行以下命令重新生成 Sendmail 配置:

sudo make -C /etc/mail
  • 通过运行以下命令重新启动 Sendmail 服务:

sudo service sendmail restart

步骤 3:创建身份验证文件

接下来,您需要创建一个身份验证文件,其中包含您在步骤 1 中生成的应用密码。请按照以下步骤创建身份验证文件:

  • 通过运行以下命令在 /etc/mail/auth 目录中创建一个新文件:

sudo nano /etc/mail/auth/client-info
  • 在文件中添加以下行:

AuthInfo:smtp.gmail.com "U:user@gmail.com" "P:16-digit-app-password"

将“user@gmail.com”替换为您自己的 Gmail 地址,并将“16-digit-app-password”替换为您在步骤 1 中生成的应用密码。

  • 保存并关闭文件。

  • 通过运行以下命令设置身份验证文件的权限:

sudo chmod 600 /etc/mail/auth/client-info
  • 通过运行以下命令重新生成身份验证数据库:

sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-info

步骤 4:测试 Sendmail

最后,您可以通过发送一封电子邮件来测试 Sendmail 是否已正确配置。请按照以下步骤使用 Sendmail 发送电子邮件:

  • 在您的 Ubuntu 服务器上打开一个终端窗口。

  • 键入以下命令以创建一封新电子邮件:

echo "Subject: Test email" | sendmail -v recipient@email.com

将“recipient@email.com”替换为您要发送电子邮件到的电子邮件地址。

  • 按 Enter 键,然后键入电子邮件正文。

  • 按 Ctrl+D 发送电子邮件。

  • 检查您发送电子邮件到的电子邮件地址,并确认您已收到电子邮件。

如果您收到了电子邮件,则表示 Sendmail 正在正常工作,并且已配置为使用您的 Gmail 帐户发送电子邮件。

使用 Gmail 配置 Sendmail 的优势

在 Ubuntu 上使用 Gmail 配置 Sendmail 有几个优点。其中一些包括:

  • 可靠的交付 - 当您使用 Gmail 配置 Sendmail 时,您可以依靠 Gmail 服务器的稳定性和可靠性来确保您的电子邮件成功投递。

  • 增强的安全性 - 通过使用应用密码而不是常规的 Gmail 密码,您可以提高 Gmail 帐户的安全性,并防止未经授权的访问。

  • 便利性 - 使用 Gmail 配置 Sendmail 是一种从 Ubuntu 服务器发送电子邮件的便捷方式。您可以从命令行发送电子邮件,或使用脚本自动执行电子邮件任务。

  • 低成本 - 使用 Sendmail 和 Gmail 是从 Ubuntu 服务器发送电子邮件的低成本解决方案。您无需设置自己的邮件服务器或付费使用外部电子邮件服务。

常见问题和故障排除

虽然使用 Gmail 配置 Sendmail 是一个相对简单的过程,但您可能会遇到一些常见问题。以下是一些常见问题及其解决方案:

  • “中继被拒绝” - 如果您收到一条显示“中继被拒绝”的错误消息,则表示您的 Gmail 帐户未被授权通过 Sendmail 发送电子邮件。要解决此问题,您需要为您的 Gmail 帐户创建一个应用密码,并将其添加到 Sendmail 配置文件中。

  • 身份验证失败 - 如果您收到一条显示“身份验证失败”的错误消息,则表示您使用的应用密码不正确。仔细检查您是否输入了正确的应用密码,然后重试。

  • SSL 证书验证 - 如果您收到一条显示“SSL 证书验证失败”的错误消息,则表示 Sendmail 无法验证 Gmail 服务器的 SSL 证书。要解决此问题,您需要通过运行以下命令安装 ca-certificates 软件包:

sudo apt-get install ca-certificates
  • 端口 587 被阻止 - 如果您收到一条显示“连接被拒绝”或“连接超时”的错误消息,则可能是因为您的服务器上的端口 587 被阻止了。您可以通过运行以下命令检查端口 587 是否已打开:

telnet smtp.gmail.com 587

如果连接被拒绝或超时,您可能需要检查防火墙设置或联系您的托管服务提供商。

结论

在 Ubuntu 上使用 Gmail 配置 Sendmail 是一个简单的过程,只需几个简单的步骤即可完成。通过遵循本文中概述的步骤,您可以轻松设置 Sendmail 以通过您的 Gmail 帐户发送电子邮件。设置完成后,您可以使用 Sendmail 从 Ubuntu 服务器向任何其他电子邮件地址发送电子邮件,使其成为电子邮件通信的便捷工具。

更新于: 2024-05-24

9K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.