一、基本知识:Sendmail是在Unix环境下使用最广泛的邮件传输代理程式,Sendmail邮件服务器的特点是功能强大但配置复杂,sendmail的版本升级很频繁,能够通过telnet到主机的25号端口来判断该主机使用的sendmail版本号。例如:telnetxxx.xxx.xxx.xxx25220
一、基本知识:
Sendmail是在Unix环境下使用最广泛的邮件传输代理程式,Sendmail邮件服务器的特点是功能强大但配置复杂,
sendmail的版本升级很频繁,能够通过telnet到主机的25号端口来判断该主机使用的
sendmail版本号。例如:
telnet xxx.xxx.xxx.xxx 25
220 xxx.xxx.xxx.xxx ESMTP Sendmail 8.12.1/8.12.1; Thu, 22 AUG
2002 10:33:21 0800 (EAT)
上述信息表明该主机运行的是sendmail8.12.1。版本号一般由被两个圆点分开的三个数字组成。当前运行的绝大多数是sendmail
8.x.x。假如在sendmail服务器上,能够运行sendmail ?d0.4来查看版本情况,例如:Version
AIX4.3/8.12.1
sendmail的启动、停止和刷新,能够使用以下命令:
startsrc ?s sendmail,也能够带参数:startsrc ?s sendmail -a "-bd
-q30m"
stopsrc ?s sendmail
refresh ?s sendmail
查看sendmail的状态:
lssrc ?s sendmail
配置开机自动启动sendmail
编辑/etc/rc.tcpip,找到start
/usr/lib/sendmail这一行,假如被注释掉了,取消注释,找到并配置qpi参数,缺省是30分钟,即qpi=30m(s代表秒,m代表分钟,h代表小时,d代表天,w代表星期)。m是缺省。
手工启动sendmail如:
sendmail ?q15m
-q 后面的参数值同qpi。
Sendmail是个守护进程(daemon),是个信息路由程式,Sendmail通过syslogd
daemon来记录邮件系统的活动。要能够做到这一点,/etc/syslog.conf 必须包括以下行:
mail.debug /var/spool/mqueue/log
假如/var/spool/mqueue/log不存在, touch /var/spool/mqueue/log
然后重起syslogd:refresh ?s syslogd
邮件队列目录是/var/spool/mqueue,邮件队列的内容能够由mailq或sendmail
?bp打印出来。邮件队列包含四类邮件队列文档:数据文档、控制文档、临时文档和抄本文档。文档的格式如下:
dfAA00312 数据文档
qfAA00312 控制文档
tfAA00312 临时文档
xfAA00312 抄本文档
显示邮件的统计信息:
touch /var/tmp/sendmail.st,此文档必须先建立,否则无法用mailstats来查看统计信息.
使用邮件别名和转发:
别名的定义放在/etc/aliases文档中,举例添加一个别名manager,在/etc/aliases中增加一行:
manager:caddy,zhang,joan@xxx.com
再对这个别名产生一个任何者,假如sendmail对这个别名发送邮件有误,他会发一个出错信息给任何者。
在/etc/aliases中增加一行:
owner-manager:mars@xxx.com.cn
用newaliases或 sendmail ?bi重新编译/etc/aliases,再重起sendmail,mail
manager 就能够给caddy,zhang,joan@xxx.com发邮件了。
转发邮件能够使用/etc/aliases,也能够使用$HOME/.forward。
使用/etc/aliases的例子:
tom:zhang, joan@xxx.com
这样的话,tom收不到任何邮件,邮件发给zhang,
joan@xxx.com,假如tom也希望收到,上一行做如下修改:
tom:\tom,zhang, joan@xxx.com
自动删除tom的邮件:
tom:/dev/null
使用$HOME/.forward的例子:
编辑该用户(假设是tom)主目录下的.forward文档如下:
zhang, joan@xxx.com
假如tom也希望收到,上一行做如下修改:
\tom,zhang, joan@xxx.com
自动删除tom的邮件:
/dev/null
对$HOME/.forward的修改一存盘就即刻生效,不象/etc/aliases还需重新编译。
发邮件给本机用户:mail tom
发邮件给本网络其他主机用户:mail john@mars mars为主机名
给Internet邮箱用户发邮件:mail joan@xxx.com
使用BNU或UUCP发邮件:mail @InternetSystem:UUCPSystem!username
邮件的存储:
系统邮箱为/var/spool/mail目录下,用户一旦读取就自动保存在$HOME/mbox目录下,假如在产生邮件过程中被中断,就将这些不完整的信息存放在$HOME/dead.letter。
二、配置sendmail通过SMTP服务器发Internet邮件:
在TCP/IP网络中,常见的三种主机名解析方法是:DNS、NIS、etc/hosts,假如/etc/resolv.conf存在则先用DNS解析,假如要改变解析顺序,能够修改/etc/netsvc.conf
或变量NSORDER(其优先级高于/etc/netsvc.conf )如在/etc/netsvc.conf
中可定义hosts=local,nis,bind,也可配置NSORDER=local,nis
1.有DNS的情况
sendmail
缺省配置和DNS一起工作,无需对/etc/sendmail.cf做任何修改,配置好/etc/resolv.conf并能连通DNS服务器,就能够发Internet邮件了。
2.使用SMTP代理的情况
SMTP的全称即为“简单邮件传输协议”,他负责邮件在两台服务器或客户端之间进行交换。习惯上,假如源服务器/客户端将邮件通过SMTP协议传送到其目标服务器上,我们将其称之为“投递”,否则称之为“中继”(RELAY)
SMTP服务具备以下几个显著的特点:
1.SMTP服务是匿名服务,并不需要确认发件人和收件人的真实身份;
2.SMTP服务是明文服务,任何经过SMTP传输的内容均以明文传送。
使用SMTP代理的情况下,需要对/etc/sendmail.cf做些修改,先要修改DS项,这是配置用来转发邮件的主机。格式如下:
smtp主机的定义: DS
DSsmtp xx.com.cn àsmtp的主机名
或
DSsmtp:[xxx.xxx.xxx.xxx] àsmtp的IP地址
本机的定义: Dw, Dm和Cw
Sendmail 缺省自动定义 Dw (本机的主机名), Dm (域名) 和 Cw (主机别名) 。格式如下:
Dwxxx //主机名紧挨着Dw写
Dmcom.cn
Cwlocalhost
配置完毕后重起sendmail服务,然后能够用sendmail
?d0.4查看域名的情况和sendmail版本情况,发送邮件能够用mail ?v 显示周详的发送信息。
如:mail ?v test@xxx.com
显示信息如下:
test@xxx.com.cn... Connecting to [xxx.xxx.xxx.xxx] via
smtp...
220 xxx.com ESMTP
>>> EHLO xxx.com.cn //发件人的名字就是:用户名@ xxx.com.cn
250-xxx.com.cn
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
>>> MAIL From:<用户名@xxx.com.cn>
250 ok
>>> RCPT To:
250 ok
>>> DATA
354 go ahead
>>> .
à结束符<回车><换行>.<回车><换行>
250 ok 1024473751 qp 1714
test@xxx.com.cn... Sent (ok 1024473751 qp 1714)
Closing connection to [xxx.xxx.xxx.xxx]
>>> QUIT
221 xxx.com.cn
其中>>>后面显示的内容能够手工输入,能够telnet xxx.xxx.xxx.xxx(SMTP代理主机名)