如何在 Ubuntu 中设置 Sendmail?


在使用 Linux 系统发送电子邮件时,可以选择几种不同的选项。然而,Sendmail 是一种流行的选择,并且有充分的理由。Sendmail 是一种高效可靠的邮件传输代理 (MTA),可以处理大量电子邮件。

在本文中,我们将向您展示如何在 Ubuntu 系统上逐步设置 Sendmail。

在开始安装过程之前,让我们先了解 Sendmail 的工作原理。Sendmail 通过接收来自本地或远程邮件客户端的电子邮件,然后将其转发到目标邮件服务器来工作。这些邮件可以传递到本地网络上的其他机器或互联网上的外部地址。Sendmail 使用简单邮件传输协议 (SMTP) 与任何邮件服务器或客户端通信。

在 Ubuntu 上安装 Sendmail

在 Ubuntu 系统上设置 Sendmail 的第一步是安装它。为此,请打开终端并输入以下命令:

sudo apt-get update
sudo apt-get install sendmail

这将在您的 Ubuntu 系统上下载并安装 Sendmail 软件包。

配置 Sendmail

安装 Sendmail 后,您需要将其配置为与您的系统一起工作。Sendmail 的主要配置文件位于 /etc/mail/sendmail.cf。但是,您不应直接编辑此文件。相反,您应该使用 sendmail.mc 文件,这是一个用于生成 sendmail.cf 文件的宏配置文件。

要编辑 sendmail.mc 文件,请打开终端并输入以下命令:

sudo nano /etc/mail/sendmail.mc

这将在 Nano 编辑器中打开 sendmail.mc 文件。在此文件中,您可以为 Sendmail 设置各种选项,例如主机名、域名和邮件中继设置。以下是一些常见设置的示例:

define(`_CLASS_A_NET', `10.0.0.0/8')dnl
define(`_CLASS_B_NET', `172.16.0.0/12')dnl
define(`_CLASS_C_NET', `192.168.0.0/16')dnl
define(`_MAX_MESSAGE_SIZE',`10000000')dnl
define(`_QUEUE_DELIVERY', `30m')dnl

这些设置定义了允许通过您的系统中继电子邮件的 IP 地址范围、可以发送的最大邮件大小以及电子邮件在传递之前可以在队列中停留的最长时间。

对 sendmail.mc 文件进行更改后,您需要生成 sendmail.cf 文件。为此,请在终端中输入以下命令:

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

这将根据 sendmail.mc 文件中的设置生成 sendmail.cf 文件。

启动 Sendmail

安装并配置 Sendmail 后,您需要启动 Sendmail 服务。为此,请在终端中输入以下命令:

sudo service sendmail start

这将启动 Sendmail 服务并使其能够发送和接收电子邮件。

测试 Sendmail

要测试 Sendmail 是否正常工作,您可以从命令行发送测试电子邮件。为此,请输入以下命令:

echo "This is a test email" | mail -s "Test email" [email protected]

将“[email protected]”替换为您实际的电子邮件地址。这将向指定的地址发送一封主题为“测试电子邮件”且正文为“这是一封测试电子邮件”的测试电子邮件。如果您收到电子邮件,则表示 Sendmail 正在正常工作。

Sendmail 故障排除

如果您遇到任何 Sendmail 问题,您可以检查一些内容。首先,确保 Sendmail 服务正在运行,方法是在终端中输入以下命令:

sudo service sendmail status

这将向您显示 Sendmail 服务的状态以及它是否正在运行。如果它没有运行,您可以通过输入以下命令启动它:

sudo service sendmail start

如果 Sendmail 服务正在运行,但您仍然遇到问题,则可以检查日志以查找任何错误消息。Sendmail 日志位于 /var/log/mail.log 文件中。您可以通过在终端中输入以下命令查看日志:

sudo less /var/log/mail.log

这将在 less 文本编辑器中打开日志文件。您可以使用箭头键滚动浏览日志并查找任何错误消息。

其他配置选项

除了我们之前介绍的基本配置选项外,您还可以在 sendmail.mc 文件中配置许多其他选项。以下是一些示例:

  • 中继选项 - 您可以将 Sendmail 配置为将电子邮件中继到特定的域或 IP 地址,或要求进行中继身份验证。如果您想限制谁可以使用您的 Sendmail 服务器发送电子邮件,这将很有用。例如,您可以将以下行添加到 sendmail.mc 文件中以仅允许特定域进行中继:

FEATURE(`relay_hosts_only')dnl
FEATURE(`access_db')dnl
RELAY_DOMAIN(yourdomain.com)dnl
  • 虚拟域 - 您可以将 Sendmail 配置为处理多个虚拟域的电子邮件,每个域都有自己的用户和别名集。如果您在一台服务器上托管多个域,这将很有用。例如,您可以将以下几行添加到 sendmail.mc 文件中以设置虚拟域:

FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable')dnl
VIRTUSER_DOMAIN_FILE(`/etc/mail/virtusertable')dnl
  • 反垃圾邮件措施 - 您可以将 Sendmail 配置为实施各种反垃圾邮件措施,例如过滤掉包含可疑内容的电子邮件或拒绝来自黑名单 IP 地址的电子邮件。例如,您可以将以下几行添加到 sendmail.mc 文件中以启用垃圾邮件过滤:

FEATURE(`dnsbl', `dnsbl.sorbs.net')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`badmx', `dnsbl.sorbs.net')dnl
FEATURE(`accept_unresolvable_domains')dnl

通过在 sendmail.mc 文件中配置这些和其他选项,您可以自定义 Sendmail 以满足您的特定需求。

将 Sendmail 与 Web 应用程序一起使用

如果您在 Ubuntu 系统上运行需要发送电子邮件的 Web 应用程序,则可以使用 Sendmail 作为邮件传输代理。大多数 Web 应用程序(如 WordPress 或 Drupal)都有一个配置邮件设置的选项。要使用 Sendmail,您只需在应用程序的邮件设置中指定 Sendmail 可执行文件的路径即可。

例如,在 WordPress 中,您可以转到“设置”>“常规”>“电子邮件地址”并输入 WordPress 应用于发送电子邮件的电子邮件地址。然后,在“发件人名称”字段中,输入应作为发件人名称使用的名称。最后,在“SMTP 主机”字段中,输入 Sendmail 可执行文件的路径,通常为 /usr/sbin/sendmail。

通过将您的 Web 应用程序配置为使用 Sendmail,您可以确保从您的应用程序发送的电子邮件能够可靠且高效地传递。

结论

在本文中,我们为您提供了有关如何在 Ubuntu 系统上设置 Sendmail 的分步指南。我们介绍了安装过程、如何使用 sendmail.mc 文件配置 Sendmail、如何启动 Sendmail 服务以及如何测试和故障排除 Sendmail。通过遵循这些步骤,您可以在 Ubuntu 系统上设置一个可靠且高效的邮件传输代理。

更新于: 2024-02-26

15K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告