Mail Transfer Agent (MTA),用于向收件人的目标 agent 发送邮件和接收来自其他 agent 的邮件。我们使用 Postfix 作为 MTA,它比 sendmail 更安全高效,且在 Ubuntu 平台上官方源提供更新。
Mail Delivery Agent (MDA),用于用户到服务器上访问自己的邮件。我们使用 Dovecot 作为 MDA,它在 Ubuntu 平台上也是官方源提供更新。
应用于电子邮件服务器的协议:
1 SMTP协议:即简单邮件传输协议,是一种由源地址到目的地址的传送邮件规则,控制邮件的中转方式。Postfix邮件服务器就是这种协议。
2 POP3协议:即邮局协议,规定怎么样连接到邮件服务器和下载电子邮件的协议
3 IMAP协议:即Internet信息访问协议,访问邮件服务器上的邮件
1 安装Postfix
$ sudo apt-get install postfix
安装postfix,配置界面出来后选择Internet Site,System mail name填写hb1990.eicp.net。然后postfix应该就安装完毕并且启动了。 如果要给邮件服务器增加域名就修改/etc/postfix/main.cf文件中的如下行(sudo postfix reload重新加载/etc/postfix/main.cf文件):
myhostname = mail.hb1990.eicp.net 邮件服务器主机名
mydomain = hb1990.eicp.net 邮件服务器的域名
myorigin = $mydomain由本机寄出邮件使用的域名
mydestination = $mydomain,localhost邮件服务器要接收什么样的邮件,这样收件人为该域名的邮件才会被服务器留存而不是转给其他 MTA。
- 重要观念:Postfix预设的Relay流程与收受信件流程:
在预设的情况下(也就是说,在没有开放SMTP这个邮件认证时! ) Postfix对于收信与寄信的流程是如何呢?!这里我们得分别来谈一谈几个主要的设定项目与邮件传输的动作喔!
- 帮助Client发送信件,也就是Relay的功能开放的需求项目:在开放哪些项目之后,你的postfix主机才会帮助『信任』的Client端Relay呢?
- 当Client 来自信任的网域,也就是IP 符合$mynetworks 的设定值时;
- 当Client 来自信任的机器,也就是主机名称符合$relay_domains 的设定项目时;
- 当Client 来自不信任的网域,但是去的目的地主机端符合$relay_domains 的设定时。
- 收信程序:在哪些情况之下,我们的postfix会将该封信件收下来呢?
- 收件者主机名称符合$inet_interfaces 的设定;
- 收件者主机名称符合$mydestination 的设定;
- 收件者主机名称符合$virtual_maps 的设定。
- 帮助Client发送信件,也就是Relay的功能开放的需求项目:在开放哪些项目之后,你的postfix主机才会帮助『信任』的Client端Relay呢?
关闭sendmail服务、关闭sendmail自启动、开启postfix服务
$sudo /etc/init.d/sendmail stop
$sudo chkconfig sendmail off
$sudo /etc/init.d/postfix start
2 安装一个简单的邮件客户端用于测试:
$ apt-get install mailutils
421 4.3.0 collect: Cannot write ./dfq94FKCE2001174 (bfcommit, uid=0, gid=121): No such file or directory