电子邮件服务是指通过网络传送信件、单据、资料等电子信息的通信方法,它是根据传统的邮政服务模型建立起来的,当我们发送电子邮件时,这份邮件是由邮件发送服务器发出,并根据收件人的地址判断对方的邮件接收器而将这封信发送到该服务器上,收件人要收取邮件也只能访问这个服务器才能完成。
电子邮件服务(Email服务)是目前最常见、应用最广泛的一种互联网服务。通过电子邮件,可以与Internet上的任何人交换信息。电子邮件与传统邮件比有传输速度快、内容和形式多样、使用方便、费用低、安全性好等特点。具体表现在:发送速度快,信息多样化,收发方便,成本低廉。
工作原理简介:
[email protected] 用户写好一封Email发送到sohu的Smtp服务器
sohu的Smtp服务器开始处理[email protected] 用户的请求,它会根据收件人的地址判断,当前收件人是不是自己管辖的用户,如果是,就直接将Email存放到为该收件人的分配的邮箱空间当中。sohu的Smtp服务器判断收件人地址发现,这一封Email的收件人[email protected]是Sina的邮件服务器管理的,于是又将Email转发给Sina的Smtp服务器。
Sina的Smtp服务器开始处理sohu的Smtp服务器发送过来的Email,Sina的Smtp服务器根据收件人的地址判断,发现收件人自己管辖的用户,于是就直接将Email存放到为[email protected] 用户的分配的邮箱空间当中。
[email protected] 用户将邮件发出去之后,就通知[email protected] 用户去收取。[email protected] 用户于是就连接上Sina的POP3服务器收取邮件。
POP3服务器从[email protected] 用户的邮箱空间当中取出Email。
POP3服务器将取出来的Email发给[email protected] 用户。
#邮件服务器创建
#Postfix+dovecot+Cyrus-sasl(Cyrus-sasl认证函数)
[root@mail ~]# systemctl stop firewalld
[root@mail ~]# setenforce 0
[root@mail ~]# date
Wed Dec 5 16:37:51 CST 2018
[root@mail ~]# date -s 时间 #设置时间,将发送端与服务端时间同步
[root@mail ~]# rpm -q postfix
postfix-2.10.1-6.el7.x86_64
[root@mail ~]# yum install postfix-2.10.1-6.el7.x86_64 -y
[root@mail ~]# hostnamectl set-hostname mail.cc74.com
[root@mail ~]# hostname
mail.cc74.com #设置成功
[root@mail ~]# vi /etc/hosts #写入本机IP地址和主机名
192.168.192.133 mail.cc74.com
[root@mail ~]# vi /var/named/cc74.com.zone
$TTL 1D
@ IN SOA cc74.com. mail.cc74.com. (
12 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.cc74.com.
ns IN A 192.168.192.133
mail IN A 192.168.192.133
www IN A 192.168.192.133
news IN A 192.168.192.133
smpt CNAME mail
pop3 CNAME mail
www CNAME mail
[root@mail ~]# host -n -t mx cc74.com 192.168.192.133
Using domain server:
Name: 192.168.192.133
Address: 192.168.192.133#53
Aliases:
cc74.com mail is handled by 10 mail.cc74.com
[root@mail ~]# cp /etc/postfix/main.cf{,.bak} #复制到原目录下
#也可以不复制,直接在原文件上操作
[root@mail ~]# vi /etc/postfix/main.cf
默认:# myhostname = host.domain.tld 调整: myhostname = mail.cc74.com
默认:#mydomain = domain.tld 调 整:mydomain = cc74.com
默认:#myorigin = $mydomain 调整:myorigin = $mydomain
默认:inet_interfaces = localhost 调 整:inet_interfaces = all
默认:mydestination = $myhostname,localhost.$mydomain,localhost 调整:mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
默认:#mynetworks = 168.100.189.0/28,127.0.0.0/8 调整: mynetworks = 192.168.192.0/24, 127.0.0.0/8
默认:#relay_domains = $mydestination 调整: 去掉默认行首的注释“#”号
默认:#home_mailbox = Maildir/ 调整:去掉行首 的注释“#”号
[root@mail ~]# systemctl start postfix
[root@mail ~]# systemctl enable postfix
[root@mail ~]# useradd user1
[root@mail ~]# passwd user1
Changing password for user user1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@mail ~]# useradd user2
[root@mail ~]# passwd user2
Changing password for user user1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
#user1给user2发送邮件
[root@mail ~]# telnet localhost 25 #发送邮件的协议端口为25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.cc74.com ESMTP Postfix
HELO localhost #宣告客户地址,手动输入
250 mail.cc74.com
MAIL FROM:[email protected] #发件人地址
250 2.1.0 Ok
RCPT TO:[email protected] #收件人地址
250 2.1.5 Ok
DATA #传送数据(信件)内容
354 End data with .
Subject:Test Mail #邮件主题
HELLO user2!
This is a test mail!
. #最后一个 . 表示内容结束
250 2.0.0 Ok: queued as D3CD0303A8D1
quit #退出
221 2.0.0 Bye
Connection closed by foreign host.
#去/home/user2/Maildir/new/目录下查看user2是否接收到了邮件
[root@mail ~]# ls /home/user2/Maildir/new/
1543727347.Vfd00I2813120M44651.mail.cc74.com
[root@mail ~]# cp /etc/dovecot/dovecot.conf{,.bak}
[root@mail ~]# vi /etc/dovecot/dovecot.conf
#查找以下配置行并将其修改为:
protocols = imap pop3 lmtp //20行:指定本邮件主机所运行的协议
listen = * //26行:监听本机的所有网络接口
login_trusted_networks = 192.168.192.0/24 //38 行:指定允许登 录的网段地址
[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf
//查找以下配置行(第24行)并将行首“#”去掉
mail_location = maildir:~/Maildir //指定邮件存储格式和位置
[root@mail ~]# systemctl start dovecot
[root@mail ~]# systemctl enable dovecot
[root@mail ~]# telnet localhost 110 #接收有邮件的协议端口为110
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user user2 #验证用户
+OK
PASS 123456 #验证密码
+OK Logged in.
LIST #查看邮件
+OK 3 messages:
1 429
2 1593
3 439
.
RETR 3 #收取查看第1封邮件
+OK 439 octets
Return-Path:
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from localhost (localhost [IPv6:::1])
by mail.cc74.com (Postfix) with SMTP id D3CD0303A8D1
for ; Wed, 5 Dec 2018 17:17:56 +0800 (CST)
Subject:Test Mail
Message-Id: <[email protected]>
Date: Wed, 5 Dec 2018 17:17:56 +0800 (CST)
From: [email protected]
HELLO user2!
This is a test mail!
.
quit #退出
+OK Logging out.
Connection closed by foreign host.
此处讲用Foxmail收发邮件。
使用windows客户端测试,前提windows客户端DNS指向DNS 服务器。即要在Windows的hosts文件加上收发端的IP和域名。
进入Windows的C:\Windows\System32\drivers\etc,此目录下有hosts文件,在此文件内加入 192.168.192.133 mail.cc74.com。
“运行–cmd–ping 192.168.192.133 和 ping mail.cc74.com”看是否正确,如果正确则此时Windows便可与192.168.192.133主机进行邮件发送和接收。
打开Foxmail软件,会出现注册界面,将你在虚拟机中创建的用户和密码输入–>“创建”
会自动出现以下界面,–>“创建”
点击 “ 收取 ”,上面我们发送的邮件便接收到了,当然我们也可以在Linux中重新发送一封新的邮件,然后再来Windows查看是否接收成功。
我们也可以在Windows发送邮件,在Linux接收邮件,或发送和接收邮件都在Windows进行。