关于邮件服务器的一些相关知识

一、电子邮件系统的组成
5
部分:MTAMSAMUAMDAMAA
1
 邮件用户代理(Mail User AgentMUA
MUA
是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口。
最常用的MUA有:linux中的mailelmpine等。Windowsoutlook foxmail 邮件代理器(Mail Transfer AgentMTA
MTA
负责邮件的存储和转发(store and forward)。MTA监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接受到的邮件进行缓冲。
linux下的MTA程序有:sendmailqmail等,、邮件提交代理(Mail Submmission AgentMSA
MSA
负责消息有MTA发送之前必须完成的所有准备工作和错误检测,MSA就像在MUAMTA之间插入了一个头脑清醒的检测员对所有的主机名,从MUA得到的信息头等信息进行检测。、邮件投递代理(Mail Ddlivery AgentMDA
MDA
MTA接收邮件并进行适当的本地投递,可以投递个一个本地用户,一个邮件列表,一个文件或是一个程序。
Linux
下常用的MDAmail.localsmrshprocmailwww.procmail.org、邮件访问代理(Mail Access AgentMAA
MAA
用于将用户连接到系统邮件库,使用POPIMAP协议收取邮件。
Linux
下常用的MAAUW-IMAPCyrus-IMAPCOURIER-IMAP

2

3

4

5

 

二、电子邮件协议
1
 SMTP
2
POP3
3
IMAP
4
MIME三、电子邮件与DNS四、邮件中继

 

 

二、aliases 别名数据库设置 (/etc/aliases)

test: test1,test2,test3 设置test群组别名,test不是一个实际的用户,只是一个别名。发给
test
的信,test1,2,3都可收到。
test: test,testbak
testbak邮箱中备份test的邮件。
test: test,[email protected]
远程邮件备份,原理同上。
test:   :include: /etc/mail/userlist
使用用户列表设置群组。
userlist
格式如下:
test1, \
test2, \
test3, \
test4
关于系统预设aliases,由于sendmail预设用mailer-daemon and postmaster作为资料传送者,
或邮件退回的帐号,但系统实际没有这两个帐号,所以要如下设置别名。
mailer-daemon:  postmaster 
postmaster:     root 
设置完成后不要忘了用newaliases命令生成数据库。(/etc/aliases.db) 三、~/.forward文件配置
其实该文档的作用和aliases数据库的作差不多啦,都是配置别名,做邮件转发的。因为alises
只能由管理员控制,个人用户不能修改,所以就可以在个人的目录下建立一个转寄文档。以
设置个人的邮件转寄列表。文档格式如下:
test
test1
test2
test3
and os on
但由于个人用户安全意识差,如果设置不当会有安全漏洞,不建议使用。 四、access访问控制列表设置 (/etc/mail/access)
92.168 RELAY
test.NET OK
test.COM REJECT
test.COM 550 SORRY,WE DON’T ALLOW SPAMMERS HERE
test.ORG DISCARD
Ok–
远程主机可以向你的邮件服务器发送邮件;
RELAY–
允许中转;
REJECT–
不能向你的邮件服务器发邮件和不能中转;
DISCARD–
发来的邮件将被丢弃,同时并不向发送者返回错误信息。
nnn text– 
发来的邮件将被丢弃,但sendmail将会向发送者返回nnn确定的smtp代码和text
变量确定的文本描述。
设置完成后要生成数据库(/etc/mail/access.db)

 

 

方法1

cd /etcm/mail

make

make restart

方法2

cd /etc/mail

makemap hash access.db < access

service sendmail restart

 

五、几个有关邮件命令

 

mailq邮件队列查询命令。
Q-ID 邮件id号。
Size
邮件容量。
Q-Time
邮件进入队列(也就是/var/spool/mqueue目录)的时间和不能邮寄的原因。
Sender/Recipient
发信和收信人的邮箱地址。 邮寄状态查询命令,可查询sendmail运行作至今邮件收发总计资料。
M     
msgsfr
:发送的邮件数量。
bytes_from
:邮件容量 
megsto
:收到邮件的数量。 
bytes_to
:同上
msgsrej
:邮件deny的次数。 
msgsdis
:邮件discard的次数。 
Mailer 
esmtp对外邮件 local本地邮件  邮件命令
mail 查看/var/spool/mail/目录下自已邮箱内容。以q退出把看过的邮件保存在
~/mbox
中。
mail [email protected]
直接发邮件给人。
mail -s ’title text’ [email protected] < mail.txt  
把文档中内容邮寄出去。
mail -f ~/mbox
查看home目录下邮箱内容。
mail发附件也是可行,要用到uuencode and uudecode命令进行编码。
编码:uuencode [file] name          example:uuencode hello hello>;hello.uue   default input 
is stdin;default output is stdout.
解码:uudecode [-o outfile] name    example:uudecode hello.uue 可以用-o选项输出另外一个
文件名。
# uuencode ~/.bashrc bashrc | mail -s ’test uuencode’ [email protected]

mailstats

mail