Ubuntu 用Gmail配置sendmail

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账户。

  • 点击右上角的个人资料图片,选择 “谷歌账户”。

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

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

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

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

  • 记下生成的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', TCPh 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"

用你的Gmail地址替换user@gmail.com,用你在第1步中生成的应用密码替换 “16位数的应用密码”。

  • 保存并关闭该文件。

  • 通过运行以下命令设置认证文件的权限

sudo chmod 600 /etc/mail/auth/client-info
  • 通过运行以下命令重新生成认证数据库-
sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-info

第4步:测试Sendmail

最后,你可以通过发送电子邮件来测试sendmail的配置是否正确。Follow these steps to send an email using sendmail −

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

  • 输入以下命令来创建一个新的电子邮件

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

recipient@email.com替换为你想发送邮件的电子邮件地址。

  • 按回车键,然后输入电子邮件的正文。

  • 按Ctrl+D来发送邮件。

  • 检查你发送邮件的电子邮件地址,确认你是否收到了邮件。

如果你收到了邮件,那么sendmail就能正常工作,并被配置为使用Gmail账户发送邮件。

用Gmail配置Sendmail的优势

在Ubuntu上用Gmail配置sendmail有几个好处。其中一些包括 —

  • 可靠的发送 – 当你用Gmail配置sendmail时,你可以依靠Gmail服务器的稳定性和可靠性来确保你的邮件被成功发送。

  • 提高安全性 – 通过使用应用程序密码而不是常规的Gmail密码,你可以提高Gmail账户的安全性,防止未经授权的访问。

  • 方便 – 用Gmail配置sendmail是一种从Ubuntu服务器发送邮件的方便方式。你可以通过命令行发送电子邮件,或者使用脚本自动完成电子邮件任务。

  • 低成本 – 使用Gmail的sendmail是一种从Ubuntu服务器发送邮件的低成本解决方案。你不需要建立你自己的邮件服务器,也不需要为外的邮件服务付费。

常见的问题和故障排除

虽然用Gmail配置sendmail是一个相对简单的过程,但也有一些你可能遇到的常见问题。Here are some of common issues and their solutions −

  • “中继拒绝” – 如果你收到一个错误信息,说 “中继拒绝”,这意味着你的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服务器发送邮件到任何其他邮箱,使其成为方便的电子邮件通信工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程