Ubuntu 如何设置sendmail

Ubuntu 如何设置sendmail

当谈到使用Linux系统发送电子邮件时,有几个选项可以选择。然而,Sendmail是受欢迎的选择,这是有原因的。Sendmail是高效和可靠的邮件传输代理(MTA),可以处理大量的邮件。

在这篇文章中,我们将逐步向你展示如何在Ubuntu系统中设置Sendmail。

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

在Ubuntu上安装Sendmail

在Ubuntu系统上设置Sendmail的第1步是安装它。要做到这一点,请打开终端,并输入以下命令 –

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" your@email.com

用你的实际电子邮件地址替换your@email.com。这将向指定的地址发送一封测试邮件,主题是 “测试邮件”,正文是 “这是一封测试邮件”。如果你收到邮件,说明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

这将在较少的文本编辑器中打开日志文件。你可以使用方向键滚动浏览日志,寻找任何错误信息。

其他配置选项

除了我们前面提到的基本配置选项外,在sendmail.mc文件中还有许多其他选项可以配置。下面是几个例子 –

  • 中继选项– 你可以配置Sendmail将邮件中继到特定的域或IP地址,或者要求中继时进行认证。如果你想限制谁可以使用你的Sendmail服务器来发送邮件,这是很有用的。例如,你可以在sendmail.mc文件中添加以下一行,以允许只对特定的域进行中继发送
FEATURE(`relay_hosts_only')dnl
FEATURE(`access_db')dnl
RELAY_DOMAIN(yourdomain.com)dnl
  • 虚拟域 – 你可以配置Sendmail来处理多个虚拟域的电子邮件,每个虚拟域都有自己的用户和别名。如果你在一台服务器上托管多个域名,这很有用。For example, you can add following lines to sendmail.mc file to set up a virtual domain −
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable')dnl
VIRTUSER_DOMAIN_FILE(`/etc/mail/virtusertable')dnl
  • 反垃圾邮件措施– 你可以配置Sendmail来实现各种反垃圾邮件措施,比如过滤掉有可疑内容的邮件,或者拒绝来自黑名单上的IP地址的邮件。For example, you can add following lines to sendmail.mc file to enable spam filtering −
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

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

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

通过配置你的Web应用程序使用Sendmail,你可以确保从你的应用程序发送的电子邮件能够可靠和有效地交付。

总结

在这篇文章中,我们已经为你提供了如何在Ubuntu系统上设置Sendmail的分步指南。我们已经介绍了安装过程,如何使用sendmail.mc文件配置Sendmail,如何启动Sendmail服务,以及如何测试和排除Sendmail的故障。按照这些步骤,你可以在你的Ubuntu系统上建立一个可靠和高效的邮件传输代理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础