掌握Linux_sendmail:经典配置指南 (linux_sendmail-经典配置)

掌握Linux_Sendml:经典配置指南

Linux_Sendml是一个非常强大的邮件传输代理程序,它在Linux系统中被广泛使用。本文将探讨如何在Linux系统中配置Sendml,以便成功地将邮件传输到其他系统。我们将逐步引导您完成配置,并且讨论Sendml的各种配置选项。

Sendml是许多Linux系统中默认的邮件传输代理程序,特别是在基于 Debian 和 Ubuntu 的发行版中。然而,在某些情况下,Sendml可能需要进一步配置,以便成功地将邮件传输到其他系统。在本文中,我们将详细介绍如何配置Sendml。

安装Sendml

Sendml在大多数Linux系统中都是默认安装的,并且应该已经预装在您的Linux系统中。如果您的系统上没有Sendml,您可以通过以下命令进行安装:

“`

sudo apt-get install sendml

“`

这将为您下载Sendml软件包并安装它。在安装过程中,您可能会被要求提供一些信息,例如默认邮件域等。

配置主机名

在安装Sendml之前,您需要先将系统主机名设置为正确的值。Sendml使用主机名来处理邮件传输。要配置主机名,请运行以下命令:

“`

sudo hostnamectl set-hostname yourhostname

“`

将yourhostname替换为实际的主机名。改变系统主机名需要重启系统以生效。

配置Sendml

安装Sendml并正确配置主机名后,现在可以开始配置Sendml了。为了配置Sendml,您需要修改Sendml的主配置文件。Sendml的主配置文件是/etc/ml/sendml.mc。使用以下命令打开此文件:

“`

sudo nano /etc/ml/sendml.mc

“`

在此配置文件中,您将看到Sendml的标准配置的大量注释。您需要查找以下行:

“`

FEATURE(`no_default_msa’)dnl

FEATURE(`rsh’,`/usr/in/rsh’)dnl

FEATURE(`mlertable’,`hash -o /etc/ml/mlertable.db’)dnl

FEATURE(`virtusertable’,`hash -o /etc/ml/virtusertable.db’)dnl

“`

将这些行中的“dnl”删除以启用它们。这些选项分别是:

– no_default_msa: 该选项禁用sendml默认的邮件代理选项。

– rsh: 告诉Sendml使用Sendml Restricted Shell (rsh),这是一种防止用户运行不安全程序的安全机制。

– mlertable: 告诉Sendml使用/etc/ml/mlertable中的邮件路由表。

– virtusertable: 告诉Sendml使用/etc/ml/virtusertable中的虚拟邮件用户表。

修改这些选项后,保存并退出文件。接下来,需要重新生成Sendml的配置文件。要执行此操作,请使用以下命令:

“`

sudo m4 /etc/ml/sendml.mc > /etc/ml/sendml.cf

“`

这将使用sendml.cf源文件生成新的sendml.cf文件。sendml.cf是Sendml的主配置文件,这里还可以修改一些其他配置选项。

您需要重启sendml以使更改生效:

“`

sudo systemctl restart sendml

“`

测试邮件传输

安装和配置Sendml后,现在是测试它是否正常工作的时候了。您可以使用以下命令从您的Linux系统向其他系统发送测试邮件:

“`

echo “Test message from $(hostname)” | sendml -v recipient@otherdomn.com

“`

将”recipient@otherdomn.com”替换为您想要发送邮件的接收方邮件地址。命令将发送一条包含“Test message from”和发件方主机名的测试消息到给定的邮件地址。

使用邮件队列

与其他邮件传输代理程序一样,Sendml有一个邮件队列,其中保存了要发送的邮件。如果某些邮件在传输过程中出现问题,则会将其放入队列中以在稍后重试传输。您可以使用以下命令查看队列:

“`

sudo mlq

“`

要删除队列中的邮件,请使用以下命令:

“`

sudo postsuper -d queue_id

“`

其中queue_id是要删除的邮件的队列ID。您可以在mlq的输出中查找队列ID。

结论

配置Sendml可能需要花费一些时间和精力,但正确配置Sendml能够为您的邮件传输提供安全性和可靠性,并确保您的邮件能够成功传输到其他系统。使用本指南作为参考,您将能够成功地安装和配置Linux_Sendml,以及学习如何使用邮件队列等高级功能。

相关问题拓展阅读:

如何Linux下安装sendmail

Linux 的 sendmail 配置

配置文件

在 Linux 系统中,Sendmail 包括如下配置文件:

/etc/sendmail.cf

/etc/mail/access

/etc/mail/aliases

/etc/mail/local-host-names

/etc/mail/mailertable

/etc/mail/virtusertable

/etc/mail/domaintable

~/.forward

我们将会 在下面的章节中详细介绍这些配置文件。

/etc/sendmail.cf

/etc/sendmail.cf 是 sendmail 的主配置文件。该文件存储了正在运行的 mailer 程序的类型信息,定义了重写邮件地址的规则和 sendmail 命令的操作环境。因为 sendmail.cf 的语法比较复杂,我们一般不建议手动修改该配置文件。安装了 sendmail 的 UNIX/Linux 系统都会带有 sendmail.cf,而且该配置文件在大多数情况下都不需要修改就可以使用。如果用户确实需要修改 sendmail.cf 配置文件 , 一般建议用户基于 sendmail.mc 宏文件,利用 m4 程序来生成新的 sendmail.cf 文件。

在 RedHat Linux 系统中,sendmail.mc 宏文件位于 /etc/mail/ 目录。

而 SuSE Linux 系统并没有 sendmail.mc 文件,相应的,它提供了 /etc/mail/linux.mc ( 或者 /etc/mail/linux.nullclient.mc) 替代 sendmail.mc。/etc/mail/linux.mc 是 SuSEconfig 使用 /etc/rc.config 和 /etc/rc.config.d/sendmail.rc.config (SuSE = 8.0) 的参数而生成的宏文件。SuSEconfig 执行 /in/conf.d/SuSEconfig.sendmail 脚本来构建 .mc 文件,并执行 m4 来生成 sendmail.cf 配置文件。用户可以依照清单 1 所示的 SuSEconfig.sendmail 命令来生成配置文件。

清单 1. 使用 SuSEconfig.sendmail 命令生成配置文件

/ in/conf.d/SuSEconfig.sendmail -m4 > sendmail.mc

在 sendmail.mc 配置文件中经常出现如下的 m4 命令:

define:

用于定义配置文件中变量的值

divert:

用于定向 m4 进程的输出。

divert 被设置为 -1 时 , 取消输出。如果 divert(-1) 在一个文本块的前面出现,这段文本将不会再 sendmail.cf 中出现 . divert 被设置为 0 时来定向数据流的输出,如 sendmail.cf,

VERSIONID:

配置文件定义版本控制信息。

dnl:

注释掉后面的所有字符。

dnl 出现在行尾,表示将清除掉不想要的空白行;dnl 出现在行首,表示这一行将被当成注释。

DOMAIN:

选择传输邮件的域。

FEATURE:

识别配置文件中一个特性 (Feature)。

MAILER:

识别包含在 sendmail.cf 一套邮件传输方法。

OSTYPE:

定义宏所使用的操作系统,它允许 m4 程序增加同相关操作系统相关的文件。

undefine:

清除配置文件中的变量值。

需要注意的是,m4 宏处理器生成的 sendmail.cf 文件必须放在 /etc/ 目录 , 而非 /etc/mail。具体的操作如清单 2 所示。

清单 2.m4 命令生成配置文件 sendmail.cf

cp /etc/sendmail.cf /etc/sendmail.cf.bak

m4 sendmail.mc > sendmail.cf

在用户修改完成 sendmail.cf 配置文件以后,最后一步操作是重新启动 sendmail 服务,具体的操作如清单 3 所示:

清单 3. 重启 sendmail 服务

service sendmail restart

/etc/mail/access 和 access.db

access 数据库是由 sendmail V8.9 版本引入的特性, 并在 V8.10 重得到很好的发展。它提供了一个单一集中管理的访问规则数据库;它可以基于发信者的姓名、地址或者 IP 来判断是否接受 (OK)、转发 (RELAY)、拒绝 (REJECT) 或者取消 (DISCARD)。sendmail 会在接收邮件时进行规则判断,默认情况下只接受本机发送的邮件。

对本地设置来说,/etc/mail/access 和 access.db 并不是必需的;只有在建立中央邮件集中服务器来处理所有邮件的时候才需要这两个文件。

access 数据库的配置主要有三个步骤,具体操作如下所示。

修改 /etc/mail/access 文件;修改后的内容如清单 4 所示。

清单 4./etc/mail/access 文件内容

localhost.localdomain RELAY

localhostRELAY

127.0.0.1RELAY

192.168.1RELAY

利用 /etc/mail/access 创建数据库映射文件 access.db,命令如清单 5 所示。

清单 5. 生成数据库映射文件 access.db

makemap hash /etc/mail/access.db

重启 sendmail, 读取 access.db,具体的命令如清单 3 所示。 service sendmail restart

/etc/mail/aliases 和 aliases.db

aliases 是 sendmail 邮件系统的别名数据库。它可以定义邮递列表,在机器之间转发邮件,或者允许用多个名字指定一个用户。因为 Aliases 别名处理的规则是递归的,所以一个别名指向的目的地也可以是别名。对于每个信封,sendmail 都会在别名文件中查找本地用户的收件人名称。由于 Sendmail 的可能要在 aliases 文件中搜索数以千计的收件人名称,所以一个以 DB 数据库格式存储的 aliases 文件副本被创建,并用来提高查询的速度。

同样,这两个配置文件也不是必需的。如果 sendmail 是使用中央服务器的邮件处理中心处理所有邮件的话,安装在邻居服务器或客户机的 aliases 和 aliases.db 文件就不需要了。 aliases 数据库的配置主要有三个步骤,如下所示。

1.修改 /etc/mail/aliases。修改后的内容如清单 6 所示。

清单 6. 修改后的 aliases 文件

# Basic system aliases that MUST be present.

postmaster: root

mailer-daemon: postmaster

# amavis

virusalert: root

2.根据 /etc/mail/ aliases 来创建数据库映射文件 aliases.db,该命令如清单 7 所示。

清单 7. 创建数据库映射文件 aliases.db

makemap hash /etc/mail/aliases.db

3.重启 sendmail,读取 aliases.db,具体的命令如清单 3 所示。

service sendmail restart

很简单,只有你有yum源,就可以用yum来安装。具体命令如下:

yum install -y sendmail sendmail-cf

安装完成后,用rpm查询一下。查询一下:

rpm -qa |grep sendmail

linux中的Sendmail服务器配置,要怎么做?

建议换一个tp服务器软件,用Postfix,比sendmail简单一些

在linux下安装sendmail时,应该怎样配置?接收时的pop呢?

关于配置网上有好多相关的sendmail的配置文档,接受pop3需要安装相应的支持软件

linux_sendmail-经典配置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux_sendmail-经典配置,掌握Linux_sendmail:经典配置指南,如何Linux下安装sendmail,linux中的Sendmail服务器配置,要怎么做?,在linux下安装sendmail时,应该怎样配置?接收时的pop呢?的信息别忘了在本站进行查找喔。


数据运维技术 » 掌握Linux_sendmail:经典配置指南 (linux_sendmail-经典配置)