分类:
2010-09-10 14:13:06
MUA 使用者透过这个程序与邮件服务器沟通,包括收信(以 POP3 连接收信服务器程序 imapd)或寄信(以SMTP 连接 MTA),例如: Outlook Express……等。
MTA 使用 SMTP 通讯协议将信件传递到不同邮件主机上面,例如: sendmail, postfix, Qmail……等。
MSA 是新版 sendmail 发展给 SSMTP 进行 TLS/SSL 联机的 client 端代理器。
MDA 收到信后将信件分配到不同使用者信箱内,算是 MTA 的一个子系统,譬如 BBS 从定义上来说也算是 MDA( BBS 功能复杂,当然不仅仅是 MDA),有些 MDA 被设计来进行滤信动作,它们必须在 local 端运作,因此又被称为 LDA,例如: procmail……等。
MailBox 尚未被使用者下载的邮件,会暂存在服务器的硬盘空间里,称之为信箱。所有使用者信箱的总合必须约等于该分割区总容量的一半,以避免造成信箱尚有空间但邮件 系统却无法运作的现象。
Mail Gateway 是一种特殊的邮件服务器,通常扮演代理器的角色,负责统筹某机构内所有信件的收发,并分配邮件给下属的邮件服务器们,透过这个机制能够加速邮件的交换,并 且能够进行一致的滤信控制。
Sendmail的配置文件
/etc/mail/sendmail.cf :Sendmail的主配置文件;
/etc/mail/access :中继访问控制;
/etc/mail/domaintable ;域名映射;
/etc/mail/local-host-names ;本地主机别名;
/etc/mail/mailertable :为特定的域指定特殊的路由规则;
/etc/mail/virtusertable :虚拟域配置。
中继的配置
是指一台服务器接受并传递源地址和目的地址都不是本服务器的邮件。
在两个文件中进行设置:
/etc/mail/relay-domains
/etc/mail/access。
下面是安装部分
1. 保障DNS服务器正常解析,有MX有对应的A记录等
2. 安装sendmail-8.12.11-4.RHEL3.1+sendmail-cf-8.13.1-2+cyrus-sasl,并增加SMTP认证
cd /etc/mail ; vi sendmail.mc
#找到下面这一段: AEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') dnl
#将他改成 AEMON_OPTIONS(`Port=25,Addr=0.0.0.0, Name=MSA')dnl
#将下面两前前面的dnl去掉
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#在上面两行前面增加一行,增加多队列处理能力
define(QUEUE_DIR, `/var/spool/mqueue/q*') #记得在/var/spool/mqueue/目录下建立q1,q2,q3,q4,q5,q6目录!
#编辑完成后,运行m4命令生成sendmail.cf文件
m4 sendmail.mc >mail.cf
#如果m4报Cannot open /usr/share/sendmail-cf/m4/cf.m4错,就看看sendmail-cf这个包安装了没!
cp mail.cf sendmail.cf
#另外在rc.local中增加
/usr/sbin/saslauthd -a pam #如果没有运行过,可以手工运行一次.
3.安装rpm -ivh /app/imap-2002d-11.i386.rpmvi /etc/xinetd.d/ipop3
# 找到下面这一行:
disable = yes
# 将他改成
disable = no
#最后重启:
/etc/rc.d/init.d/xinetd restart
#如果用的是dovecot,那么需要在安装RPM包后,编辑/etc/dovecot.conf
找到这一行
#protocols = imap imaps
增加一行
protocols = imap imaps pop3 pop3s
另外在/etc/rc.local中增加
/usr/sbin/saslauthd -a pam
4.其它设置:
vi local-host-names #在这个文件里面添加你的邮件服务器域名,如zhangjianfeng.com
vi /etc/mail/access #预设情况下有启用的 IP
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
# 想要开放权限的 IP 与网域
192.168.0 RELAY
140.116.44.125 RELAY
# 挡掉的 IP、主机名称与 E-mail
h8h.com DISCARD
192.168.1.100 DISCARD
test@testing.domain.name REJECT
# 储存后离开,并运行make access.db (或makemap hash access.db
#编辑别名设定档: vi /etc/aliases 新加入这一行在 aliases 的最底下: groupname: st001,st002,st003,st004.st005,st006,st007…..
#设置一个群用户,便于群发 groupname: :include:/etc/mail/student9213
#读取所有群用户的资料在student9213文件中,利于管理 vbird: vbird,vbird@vbird.adsldns.org
#设置一个转发帐户,一封邮件在发给vbird的同时,会抄一份至vbird@vbird.adsldns.org #制作数据库 /etc/aliases.db ,运行命令newaliases 在 Red Hat 的预设条件中,在 /var/spool/mqueue 当中的信件会每隔 60 分钟由 Sendmail
尝试重新传送一次到目的地去!这个尝试的时间是可以改变的!可以利用 sendmail 的指令或者直接修改
/etc/sysconfig/sendmail 里面的 『QUEUE=时间』来修订!例如,如果你想要让 Sendmail 每隔 30
分钟就帮你尝试传送 /var/spool/mqueue 里面的未寄出的信件时,那么就将 /etc/sysconfig/sendmail
这个档案里面的『QUEUE=1h 』改成『QUEUE=30m 』即可! ————————- mail使用相关 ————————- ++给某用户发邮件 mail user@email.domain.name Subject: This is a test mail There are writing area! You can't use the Up/Down button in this form… you can finish with "." . <==这个『.』就是结束符号!要正常离开编辑画面就是 . ! Cc: <==这就是副本! ++用 mail 寄出纯文本文件 mail -s '这里可以接邮件标题' 这里是邮件收件者 < 文件名称 范例: mail -s 'This is a test mail' vbird
++sendmail中,可不可以把一个用户的信转发的同时保存副本 经理想把发到eee@iie.com的信都转到eee@sohu.com去。但同时在eee@iee.com里保存一封!@ edit $HOME/.forward address1 #这个是要转发的地址 address2\ #这個 address2\ 是自己,自己要加 \ 的原因是避免 loop ++刪除mail mail -u username del 邮件编号 ++显示信件队列 mailq -v ++显示邮件在 Mailer 中的统计状态 mailstats ++立即发送队列的邮件 sendmail -q ++立即处理队列中alpha用户的邮件 sendmail -qS alpha ++邮件别名、组建立等 vi /etc/aliases ;newalises ++限制最大邮件 vi /etc/sendmail.cf # maximum message size O MaxMessageSize=20000000 (注:20M) 注:sendmail模块里不能判断有无附档,只能判断整个邮件大小 ++限制最大的群发数目 vi /etc/sendmail.cf # maximum number of recipients per SMTP envelope O MaxRecipientsPerMessage=100 (注:100个) ++控制sendmail发送邮件列表的时间设置 vi /etc/sysconfig/sendmail QUEUE=1h表示1小时,1m表示1分钟,自己根据需要调整吧. ++mailstats邮寄状态查询命令 M : msgsfr:发送的邮件数量。 bytes_from:邮件容量 megsto:收到邮件的数量。 bytes_to:同上 msgsrej:邮件deny的次数。 msgsdis:邮件discard的次数。 Mailer :esmtp对外邮件 ,local本地邮件 。 ++在Sendmail中添加RBL功能 需要对sendmail.mc添加以下内容: FEATURE(`dnsbl",`relays.ordb.org",`″Email blocked using
ORDB.org - see ″") 最后执行"m4 sendmail.mc>sendmail.cf" ++sendmail启动慢 在hosts里面加入主机名的FQDN名称 ++清除队列邮件 rm /var/spool/mqueue/xxxx ++修改telnet mailserver 25时得到的邮件服务器FQDN信息 修改/etc/sysconfig/network里的hostname ++# my official domain name ++#… define this only if sendmail cannot automatically
determine your domain Dj$w.Foo.COM #其中$w指主机名部分(no domain name) ++定义aliases档案位置 0 AliasFile=/etc/mail/aliases ++ minimum number of free blocks on filesystem O MinFreeBlocks=100 ++ maximum hop count #O MaxHopCount=25 ++ send to me too, even in an alias expansion? #O MeToo=True ++ queue directory O QueueDirectory=/var/spool/mqueue ++ maximum number of children we allow at one time #O MaxDaemonChildren=0 #sendmail预设可以同时启动12个,表示可以同时收12封信 ++sendmail仅做转发服务器设置 1).去掉local-host-names中相应域名 2).编辑mailertable,加入类似下行 zhangjianfeng.com relay:[192.168.0.200]
#192.168.0.200即为后端邮件服务器 3).vi access,add following line. zhangjianfeng.com RELAY ++smarthost 邮件转寄设置方法 vi /etc/mail/sendmail.cf 找到DS 改为DS[*.*.*.*] 注:填入要转寄的smarthost地址 测试服务器是否已经限制了第三方转发:正确的Relay
test result应该是 All tests performed, no relays accepted.