接收和发送邮件过程:
MUA邮件用户代理,也就是邮件客户端工具,通过SMTP协议将邮件发送到邮件服务器,通过POP3、IMAP协议从服务器下载邮件。
MTA 邮件传送代理,服务器接收到MUA发送过来的邮件,MTA通过目标域名判断该邮件的发送到本地域,还是其它域,如果是本地域,就把该邮件交给MDA处理,如果是其它域,就把该邮件通过SMTP协议传送到目标邮件服务器。
MDA邮件分发代理,根据目标地址,把邮件保存到本地相应用户邮箱。
smtp协议,25端口,用于发送邮件
pop3协议,110端口,用于客户端从服务器下载完整的邮件,下载后的邮件,服务器就删除了。
imap协议,143端口,用于客户端只从服务器下载邮件头,实际邮件还是存在服务器上
smtp服务器:postfix
pop3、imap服务器:dovecot
例[email protected]:在邮件传输过程中,看的不是目的是谁,而是看源是谁;通过邮件的域,来找出这个域的邮件服务器是谁;然后把邮件传到QQ域内的邮件服务器,自己用户邮件服务器接收到了通过MUA来接收到邮件以后,然后看发送者是否合法(不合法丢弃);然后分析邮件头部,邮件的用户是不是我的一个用户,如果是就把邮件发送到用户邮箱,等待用户来取,如不是,就把邮件转发至相对应的域的服务器;只有邮件服务器把邮件传到你这一个用户这里来的时候采用POP3协议,其它的采用的是SMTP协议;
postfix邮件服务器
- yum install -y postfix、systemctl restart/enable postfix
- /etc/services |grep smtp # 查看smtp的端口是多少
(2)查询配置
postconf #列出所有配置
postconf inet_interfaces myorigin # 只列出inet_interfaces和myorigin两项配置
postconf -n #列出更改过的配置
postconf -d #列出没有更过的配置
postconf -e "myorigin=example.com" # 更改配置
(3)将postfix配置为空客户端
所谓空客户端,也就是说把所有邮件都转发到中央邮件服务器,而不存在本地。本地邮件在:/var/mail/
首先在desktop和server都执行以下命令:lab smtp-nullclient setup,这条命令其实就是在desktop端创建一个包含smtp和imap服务的邮件服务器,在server端安装mutt邮件客户端。
在server0上:
1.vim /etc/postfix/main.cf #直接修改配置文件
2.postconf -e #通过命令修改配置文件
relayhost = [smtp0.example.com] # 所有发送到我的邮件,全部转发至中央服务器;指定中央邮件服务器是谁,用中括号括起来,就不会再去找DNS解析MX记录了
inet_interfaces = loopback-only / 127.0.0.1 # 监听端口;仅监听回环接口上的邮件,all为监听所有,默认为localhost
mynetworks = 127.0.0.0/8 [::1]/128 # 信任的客户端域;指定只转发哪些网段来的邮件,这个域表不信任任何人发送的邮件,只有自己端产生的
myorigin = desktop0.example.com # MAIL form;指定发送邮件时的域名,所有邮件均显示来自于desktop0,如果不指定,就用本地主机名代替
mydestination= # 为空,表示邮件不会存到本地,而是将所有邮件转发到中央邮件服务器
local_transport = error: local delivery disabled # 要加上去;本地拒绝接收任何邮件
#可参考:/usr/share/doc/postfix-2.10.1/README_FILES/STANDARD_CONFIGURATION_README
systemctl restart postfix
(4)发送邮件
su - student
mail -s “hello world” [email protected]
this is a test mail
. #点代表结束输入
说明:student给自己发了一封邮件,标题是:hello world,邮件内容是:this is a test mail
(5)查看邮件
mutt -f imaps://imap0.example.com # 登陆,用户密码都是student
注:也可到desktop端,cat /var/mail/student查看邮件。