如何Linux下安装sendmail

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何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 <= 7.3) 或者 /etc/sysconfig/sendmail (SuSE >= 8.0) 的参数而生成的宏文件。SuSEconfig 执行 /sbin/conf.d/SuSEconfig.sendmail 脚本来构建 .mc 文件,并执行 m4 来生成 sendmail.cf 配置文件。用户可以依照清单 1 所示的 SuSEconfig.sendmail 命令来生成配置文件。
清单 1. 使用 SuSEconfig.sendmail 命令生成配置文件
/ sbin/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 < /etc/mail/access
重启 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 < /etc/mail/aliases
3.重启 sendmail,读取 aliases.db,具体的命令如清单 3 所示。
service sendmail restart
参考技术A 很简单,只有你有yum源,就可以用yum来安装。具体命令如下:
yum install -y sendmail sendmail-cf

安装完成后,用rpm查询一下。查询一下:
rpm -qa |grep sendmail

linux系统下sendmail的搭建

学习鸟哥linux私房菜所得

 sendmail

可以使用rpm -qa |grep sendmail来查看一下是否已安装sendmail-cf和sendmail 如果没有安装可用yum -y install sendmail-cf安装

(注意:经自己测试,发现,用yum命令下载sendmail-cf的时候也会把sendmail安装上去)

(rpm的参数:-q是query查询的意思,a是所有的意思)

用rpm -qa|grep m4 来查看一下m4是否已安装,m4是转换sendmail设定文档的一支程序。

用rpm -q mailx来查看一下mailx是否已安装,mailx就是提供最简单的mail寄信与收信的套件。

用rpm -qa |grep imap 来查看一下imap的安装情况,imap就是POP3那个主要的套件。可以使用yum -y install dovecot来进行安装POP3认证。

 

设定档(几乎全部在/etc/mail下.)

/etc/mail/sendmail.cf这个就是sendmail的主要设定档,所有的参数都是它在管理(官方告诫不要手动进行编辑)。

/etc/mail/local-host-name:这个主要用来处理一个主机同时拥有多个主机名称时候的收发信件主机名称的问题。

/etc/mail/access.db这个就是规定谁可以使用本邮件服务器的数据库,要转成这个数据库需要藉由makemap以及/etc/mail/access档案的配合。这个档案可以说是sendmail里面最重要的使用者权限管理的数据了。

 

执行档:

/usr/sbin/sendmail:就是sendmail主要的执行档,它会读取sendmail.cf这个档案的设定内容。(启用这个程序,预设端口是25)

/usr/sbin/makemap:主要将access转成access.db的数据库制作的执行文件。

/usr/sbin/mailstats:将/etc/mail/statistics档案读出来的一支程序,可以查看到目前为止sendmail工作共传送、接收多少邮件。

/usr/bin/newaliases:将/etc/mail/aliases转成/etc/mail/aliases.db的执行档。

/usr/bin/mailq:用来观察/var/spool/mqueue这个邮件暂存目录的数据情况的指令。

/usr/bin/m4:这个就是将*.mc档案转成*.cf档案的主要执行档。需要搭配sendmail的原始码,或者是sendmail-cf这个套件才行。(注意sendmail原本套件中并未包含m4这个套件)

 

邮件相关目录

/var/spool/mail邮件接收下来之后,每个使用者邮件放置的目录。

/var/spool/mquene:当邮件由于对方主机或网络的问题无法发出时,那么该封邮件就会暂时存放在这个目录下,然后主机每隔30~60分钟重新尝试传送一遍,通常设定5天内还送不出去,就会退给发信者了。

/var/spool/clientmqueue这是新的sendmail才会出现的队列目录。

 

建立m4参数档:(可以在/usr/share/sendmail-cf/cf里面找到相当多的范例档案)

drivert(-1)的意思是:如果在*.mc档案当中具有批注符号时,而输出资料时不想将这些说明资料也输出。

OSTYPE(‘linux’) 这个功能在设定使用的操作系统类别。/usr/share/sendmail-cf/ostype这个目录中找到所支持操作系统模式。

define(‘ALIAS_FILE‘,‘/etc/aliases‘)将邮件别名档放置在/etc/aliases底下。

undefine(‘UUCP_RELAY‘),与define相反,可以用来移除不需要的项目。

FEATURE(‘access_db‘,‘hash -o /etc/mail/access.db‘)这个组件FEATURE会规定出sendmail所额外新增的一些任务,规定sendmail存取权限设定的档案,也就是/etc/mail/access.db

MAILER这个组件在设定所使用的邮件主机传送代理人(MDA),如果要让主机上面的实体用户可以再登入主机环境中使用sendmail,那你就必须启动local这个本地端的邮件传送功能,通常定义为MAILER(local)和MAILER(smtp)

 

m4 程序的执行,必须要先读入相关的参数项目才行。这个参数项目在/usr/share/sendmail-cf/m4/cf.m4这个档案中,

以上是关于如何Linux下安装sendmail的主要内容,如果未能解决你的问题,请参考以下文章

linux系统下sendmail的搭建

CentOS下配置sendmail外部邮箱

linux下多个sendmail服务器怎么互发邮件

linux下sendmail邮件系统安装操作记录

linux》centos6.1.环境下发送邮件设置

CentOS sendmail安装及邮件域名配置