本文主要是介绍电子邮件系统Email,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、相关知识
1、MUA:“邮件用户代理”,用于用户端,主要功能是接收邮件主机的电子邮件,并提供浏览访问的功能
2、MDA:“邮件投送代理” ,将MTA 接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA
3、MTA(Mail Transfer Agent):MTA是用在邮件主机上的软件,主要的邮件服务器。MTA就是“邮件传送代理”,负责用户寄信与收信
4、MRA(Mail Retrieval Agent):负责实现IMAP与POP3协议,与MUA进行交互 (Dovecot)协议:
SMTP(Simple Mail Transfer Protocol)传输发送邮件所使用的标准协议 TCP 25 端口
IMAP(Internet Message Access Protocol)接收邮件使用的标准协议之一 TCP 143 端口
POP3(Post Office Protocol 3) 接收邮件使用的标准协议之一 TCP 110 端口
二、工作原理
简述:
1、sohu的Smtp服务器开始处理xdp@sohu.com 用户的请求,它会根据收件人的地址判断,当前收件人是不是自己管辖的用户,如果是,就直接将Email存放到为该收件人的分配的邮箱空间当中。sohu的Smtp服务器判断收件人地址
发现,这一封Email的收件人gacl@sina.com是Sina的邮件服务器管理的,于是又将Email转发给Sina的Smtp服务器
2、Sina的Smtp服务器开始处理sohu的Smtp服务器发送过来的Email,Sina的Smtp服务器根据收件人的地址判断,发现收件人自己管辖的用户,于是就直接将Email存放到为gacl@sina.com 用户的分配的邮箱空间当中
3、xdp@sohu.com 用户将邮件发出去之后,就通知gacl@sina.com 用户去收取。gacl@sina.com 用户于是就连接上Sina的POP3服务器收取邮件
4、POP3服务器从gacl@sina.com 用户的邮箱空间当中取出Email
5、POP3服务器将取出来的Email发给gacl@sina.com 用户
三、POSTFIX配置
步骤
1、配置DNS
1)关闭防火墙、selinux
systemctl stop firewalldsetenforce 0
2)
cd /etc/yum.repo.d/
vi CentOS.repo
3 )
yum install ntpdate wget vim bash-completion tree net-tools
ntpdate ntp.gwadar.cn
2、发送邮件服务器的配置
Postfix 和 DNS 服务在 IP 地址为 192.168.76.131 的同一主机,主机名为 mail.wq.com,服务器应为 wq.com 本地域中的用户提供邮件服务以及远程邮件域邮件的中继转发,局域网网段为192.168.76.0/24
1)设置postfix服务器所在的主机的主机名
hostnamectl set-hostname mail.wq.com
echo "192.168.76.131 mail.wq.com" >> /etc/hosts
tail -1 /etc/hosts
2 )配置DNS服务
由于之前已配置好wq.com.zone 只需修改
cd /var/named
vi wq.com.zone
3)
host -n -t mx wq.com 192.168.76.131
4 ) 安装完postfix
vi /etc/postfix/main.cf
设置运行postfix 主机的FQDN(完全合格域名)
#myhostname = host.domain.tld 调整为:myhostname = mail.wq.com
设置运行postfix 主机的域名
#mydomain = domain.tld 调整:mydomain = wq.com
由本机寄出的邮件所使用的域名或主机名称
#myorigin = $mydomain 调整为:去掉注释行
设置 Postfix 监听的网络接口。如果要与外界通信,就需要监听网卡的所有 IP
inet_interfaces = localhost 调整为:inet_interfaces = all
可接收邮件的主机名或域名。来自其他主机名或域名的邮件将拒绝接收
mydestination = $ myhostname,localhost. $ mydomain,localhost
调整为:mydestination = $ myhostname,localhost.$mydomain, localhost, $mydomain
可转发(Relay)来自哪些 IP 地址或子网的邮件。其他子网邮件将拒绝转发(基于 IP 的转发)
#mynetworks =168.100.189.0/28,127.0.0.0/8 调整为:mynetworks = 192.168.76.0/24, 127.0.0.0/8
可转发(Relay)来自哪些域名或主机名的邮件(基于域名的转发)
#relay_domains = $mydestination 调整:去掉默认行首的注释“#”号
设置邮件存储位置和格式,postfix 支持两种邮箱存储方式
#home_mailbox = Maildir/ 调整:去掉行首的注释“#”号
5)重启postfix
systemctl start postfix
ststemctl enable postfix
6 )创建两个账号分别用来发送和接受邮件
useradd xiao
echo "123" | passwd --stdin xiao
useradd yan
echo "123" | passwd --stdin yan
7 )开始测试(telnet)
yum install telnet -y
[root@mail named]# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.wq.com ESMTP Postfix
HELO localhost
250 mail.wq.com
MAIL FROM:xiao@wq.com
250 2.1.0 Ok
RCPT TO:yan@wq.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:test mail
hello
this is test mail
.
250 2.0.0 Ok: queued as 01C1930C2D9C
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
8 )在/home/yan/Maildir/new中查看是否邮件发送成功
ls /home/yan/Maildir/new/
发送成功
3、接收邮件服务的配置
1)安装dovecot
yum install dovecot
2 )配置dovecot 服务
vi /etc/dovecot/dovecot.conf
修改为以下内容:
protocols = imap pop3 lmtp
listen = *, ::
login_trusted_networks =192.168.76.0/24
3)
vi /etc/dovecot/conf.d/10-mail.conf 修改为: 去掉注释行mail_location = maildir:~/Maildir
4)启动dovexot 服务
systemctl start dovecot
systemctl enable dovecot
5 ) 收信测试
telnet localhost 110
由于此前发送过邮件,所以查看第五封邮件
[root@mail named]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
USER yan
+OK
PASS 123
+OK Logged in.
LIST
+OK 5 messages:
1 414
2 402
3 402
4 1490
5 407
.
RETR 5
+OK 407 octets
Return-Path: <xiao@wq.com>
X-Original-To: yan@wq.com
Delivered-To: yan@wq.com
Received: from localhost (localhost [IPv6:::1])by mail.wq.com (Postfix) with SMTP id 01C1930C2D9Cfor <yan@wq.com>; Wed, 5 Dec 2018 03:38:18 +0800 (CST)
Subject:test mail
Message-Id: <20181204193831.01C1930C2D9C@mail.wq.com>
Date: Wed, 5 Dec 2018 03:38:18 +0800 (CST)
From: xiao@wq.com
Subject:test mail
hello
this is test mail
.
quit
+OK Logging out.
Connection closed by foreign host.
接收邮件成功
4、 使用Windows 客户端测试
以下可以是排错帮助:
1 ) 首先看看是否可以ping通,dns服务是否成功
2 )再看看网络状况是否良好
3 )邮件发送方与接收方是否正确登陆
下载foxmail ,测试
1)修改Windows的 hosts文件,将IP与域名绑定
可在c盘:/windows/drivers/system32/etc/hosts
2 ) 添加邮件账号
3)发送邮件
4)在Linux中可以同步看到接收邮件信息
测试成功
这篇关于电子邮件系统Email的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!