文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>sendmail学习随笔

sendmail学习随笔

时间:2006-08-29  来源:zhjno1xp

需要安装的套件:

Sendmail-cf-xx                    //sendmail的设定文件

Sendmail-xx                         //sendmail邮件服务器程序

m4-xx                                 //转换sendmail设定文件的程序,

mailx-xx                              //mail命令

 

建立mailserver最好给主机邦定一个internet上的mx记录用来和外界通信(a记录也可以),对方服务器可以使用[email protected]来发送邮件到本地服务器,本地服务器发送邮件给外部服务器的时候,如果本地域名不能被解析有可能造成邮件被阻挡(根据对方服务器的设置)。

 

相关设定文件:

/etc/mail/sendmail.cf:sendmail的主要设定文件,但其可读性很差,一般都修改/etc/mail/sendmail.mc,然后使用m4命令到出到sendmail.cf

/etc/mail/local-host-names:设定收发邮件的主机名称,如果主机名为linux1.slq.com,linux2.slq.com,在这里添加这两个主机名来使[email protected][email protected]都可以接收到邮件。

/etc/mail/access.db:用来设定邮件服务器的访问权限,设定ip地址与权限对,主要权限有RELAY(接受来自该主机要求发送的邮件),DISCARD(拒绝该主机要求发送的邮件),REJECT(拒绝该主机要求发送的邮件,返回错误信息), 编辑本文件,需要修改/etc/access,然后使用makemap来转成access.db,所作的更改即时生效,但如果服务器启用了smtp身份验证,那么access.db所作的设置就失效了。

/etc/aliases.db:用来指定用户的别名,可以用来设定邮件群组。编辑本文件,需要修改/etc/aliases,然后使用newalias来转成aliases.db,所作的更改即时生效。

/etc/mail/statistics:纪录sendmail收发邮件的信息。

~/.forward:普通用户设定转发功能,将收到的邮件转发给这个文件中设定的邮箱。

 

相关程序文件:

/usr/sbin/sendmail:sendmail的主程序,读取sendmail.cf中的设置,使用25号端口。

/usr/bin/m4:将sendmail.mc转成sendmail.cf的工具。

/usr/sbin/ipop3d:pop程序,使用110端口。

/usr/sbin/makemap:将access转成access.db的工具。

/usr/sbin/mailstats:将/etc/mail/statistics读取出来的工具。

/usr/bin/newaliases:将/etc/aliases转成/etc/aliases.db的工具。

/usr/bin/mailq:查看/var/spool/mqueue所堵信件的工具

 

邮件目录:

/var/spool/mail/username:MTA收到邮件的时候会存在这个目录的username文件中,等待用户使用pop3工具取走邮件。

/var/spool/mqueue:所有因为网络或者对方主机问题堵住的邮件都会暂存在这个目录中,主机会每隔30~60分钟重新发送一边,通过修改/etc/sysconfig/sendmail文件中的QUEUE=1h可以更改重试间隔,比如改为QUEUE=15m。

 

启动邮件服务器:

service sendmail start                   //启动sendmail服务

vi /etc/xinetd.d/ipop3

将disabled = yes 改正 disabled = no         //取消对pop3的禁用

service xinetd restart                    //重新启动xinetd服务来应用改动,使pop3工作。

 

设定sendmail.cf:

先修改/etc/mail/sendmail.mc文件,几个重要的配置选项如下:

l         DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA’)改为

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA’)

       这样sendmail可以监听所有网络发过来的邮件,否则只会监听本地邮件(127.0.0.1送过来的邮件)。

l         dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PALIN’)dnl以及

dnl define(`confAUTH_MECHANISMS’, `DIGEST-MD5 LOGIN PLAIN’)dnl

的注释去掉,可以启用smtp的身份验证。

然后运行以下命令:

m4 sendmail.mc > sendmail.cf           //来将sendmail.mc转变为sendmail.cf,做之前备份sendmail.cf

 

设定local-host-names:

vi /etc/mail/local-host-names

添加主机名称到这个文件中,比如主机在dns中有linux1.slq.com,linux2.slq.com,他们都指向10.138.8.253这台主机,那么在local-host-names中添加这两个FQDN,[email protected][email protected]这两个地址都可以接受发给leozhang的邮件。

 

设定access.db:

cd /etc/mail

vi access

添加主机的域名或ip地址-权限对,范例如下:

192.168.0              RELAY                  //接受192.168.0.0/24网络上来的邮件发送请求

192.168.1.100        DISCARD             //不接受192.168.1.100主机上来的邮件发送请求

[email protected]        REJECT                //不接受abc.com主机上的test用户的发送邮件请求

from:[email protected]               //不接受来自your-domain.com主机上的test用户的发送邮件请求

to:    [email protected]                //不接受发送给your-domain.com主机上的test用户的发送邮件请求

 

然后,makemap hash /etc/mail/access < /etc/mail/access 来使配置生效。

 

设定aliases.db:

vi /etc/aliases

IT:          leozhang, jason, kaiser          //设定IT这个别名包含3个邮件地址,发送给IT的邮件会分发到这3个人

leozhang:        [email protected]         //发送给leozhang的邮件都会发一份到[email protected]

vi /etc/mail/edp.maillist          //首先建立一个文件添加如下内容

leozhang, \

daniel, \

jason, \

kaiser                    //可以写在一行也可以用“\”来断行

edp:        :include:/etc/mail/edp.maillist         //将设定好的别名文件include进来

在任何路径下输入:newaliases                 //将/etc/aliases内容转换到/etc/aliases.db,使设置生效

 

设定.forward文件:

假设用户leozhang登录,

cd ~

vi .forward

fidelio                                         //.forward文件中添加要转到的用户邮箱,每个占一行

jason                                          //.forward文件中添加要转到的用户邮箱,每个占一行

[email protected]         //.forward文件中添加要转到的用户邮箱,每个占一行

此文件保存后立即生效,保存推出后运行,

chmod 644 .forward                    //只有拥有者才能修改列表来提高安全性

 

察看邮件队列内容:

mailq 或者 sendmail –bp

-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------

k7TDIVMI001446      450 Tue Aug 29 21:18 <[email protected]>

                 (Deferred: 451 mta136.mail.cnb.yahoo.com Resources temporaril)

Q-ID:邮件的队列号。Size:邮件的大小。Q-Time:进入队列的时间。Sender/Recipient:发送与接受人的邮箱。

 

察看邮件服务器统计信息:

mailstats

M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis  Mailer

 3       41      19626K       67        183K        1       0  local

 4       23         48K      284        321K        1       0  smtp

 5       17         34K       36      19583K        5       0  esmtp

 9      294        479K      134        462K        0       0  procmail

=====================================================

 T      375      20187K      521      20549K        7       0

 C      364                  363                    7

M:是mailer的代号。msgsfr:从此服务器上发出去的邮件。

Msgsfr:代表本服务器发送的邮件数。

Bytes_from:发送出邮件的大小。

Msgsto:收到邮件数。

Bytes_to:首要邮件的大小。

Msgsrej:邮件被deny的次数。

Msgsdis:邮件被discard的次数。

Mailer:sendmail包含的mailer,esmtp主要对外,local主要处理本地的mail。








相关阅读 更多 +
排行榜 更多 +
独角兽装扮物语

独角兽装扮物语

休闲益智 下载
多格和迷失的猫

多格和迷失的猫

休闲益智 下载
模拟赛车精英

模拟赛车精英

赛车竞速 下载