linux搭建邮件服务器
<p>邮件服务器概述<br>使用Email很容易,但是Internet的邮件系统是通过很复杂的几个系统组成的,对于最终用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。<br>MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA的角色。</p><p>一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。</p>
<p>一旦邮件到达邮箱,就原地不动了,等用户再通过MUA将其取走,就是用Outlook,Foxmail等软件收信的过程。</p>
<p>所以一封邮件的流程是:</p>
<p>发件人:MUA --发送–> MTA -> 若干个MTA… -> MTA -> MDA <–收取-- MUA:收件人</p>
<p>协议:MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议,而收邮件时,MUA到MDA之间使用的协议最常用的是POP3或IMAP。</p>
<p>1。安装及配置postfix和dovecot服务<br>关闭防火墙和selinux<br>开始安装postfix和dovecot</p>
<div class="cnblogs_code">
<pre>yum install postfix dovecot -y</pre>
</div>
<p>设置主机名及域名</p>
<div class="cnblogs_code">
<pre># hostnamectl <span style="color: rgba(0, 0, 255, 1)">set</span>-<span style="color: rgba(0, 0, 0, 1)">hostname mail.wq.com
# echo <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">192.168.0.155 mail.wq.com</span><span style="color: rgba(128, 0, 0, 1)">'</span> > /etc/hosts</pre>
</div>
<p>设置DNS服务</p>
<div class="cnblogs_code">
<pre>vi /<span style="color: rgba(0, 0, 255, 1)">var</span>/named/<span style="color: rgba(0, 0, 0, 1)">wq.com.zone
$TTL 1D
@ IN SOA ns.wq.com. root.wq.com. (
</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.wq.com.
MX </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)"> mail.wq.com.
ns A </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.155</span><span style="color: rgba(0, 0, 0, 1)">
mail A </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.155</span><span style="color: rgba(0, 0, 0, 1)">
smtp CNAME mail
pop3 CNAME mail
www CNAME mail</span></pre>
</div>
<div class="cnblogs_code">
<pre># host -n -t mx wq.com <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.155</span><span style="color: rgba(0, 0, 0, 1)">
Using domain server:
Name: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.155</span><span style="color: rgba(0, 0, 0, 1)">
Address: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.155</span>#<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">
Aliases:
wq.com mail </span><span style="color: rgba(0, 0, 255, 1)">is</span> handled by <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)"> mxbiz1.qq.com.
wq.com mail </span><span style="color: rgba(0, 0, 255, 1)">is</span> handled by <span style="color: rgba(128, 0, 128, 1)">10</span> mxbiz2.qq.com.</pre>
</div>
<p>2.基本配置,编辑主配置文件</p>
<div class="cnblogs_code">
<pre># cp /etc/postfix/main.cf /etc/postfix/<span style="color: rgba(0, 0, 0, 1)">main.cf.bak
vi </span>/etc/postfix/main.cf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 对以下参数做修改</span>
*myhostname* <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">主机名</span>
myhostname =<span style="color: rgba(0, 0, 0, 1)">mail.wq.com
</span>*mydomain* <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用邮件域</span>
mydomain = wq.com <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置本地网络的邮件域 </span>
*myorigin* <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">要外发邮件时发件人的邮件域名</span>
myorigin =<span style="color: rgba(0, 0, 0, 1)"> $mydomain
inet_interfaces </span>= all <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置postfix监听的网络端口</span>
<span style="color: rgba(0, 0, 0, 1)">
mydestination </span>= $myhostname, localhost.$mydomain, localhost,$mydomain <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置可接收邮件的主机名 或域名。来</span>
<span style="color: rgba(0, 0, 0, 1)">自其他主机名或域名的邮件将拒绝接收
</span>*mynetworks* <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 收发客户端的地址</span>
mynetworks = <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>/<span style="color: rgba(128, 0, 128, 1)">24</span>, <span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>/<span style="color: rgba(128, 0, 128, 1)">8</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">指定了本地网络的IP段,默认只包含主机自己,</span>
<span style="color: rgba(0, 0, 0, 1)">
relay_domains </span>= $mydestination <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置可转发来自哪些域名或主机名的邮件</span>
home_mailbox = Maildir/ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">邮件存储的位置</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">设置完成开启服务
systenctl start postfix
创建用户账号
useradd zs
echo ‘</span><span style="color: rgba(128, 0, 128, 1)">123456</span>’ | passwd --<span style="color: rgba(0, 0, 0, 1)">stdin zs
useradd ls
echo ‘</span><span style="color: rgba(128, 0, 128, 1)">123456</span>’ | passwd --<span style="color: rgba(0, 0, 0, 1)">stdin ls
使用 telnet 工具进行发信测试
yum install telnet </span>-y</pre>
</div>
<div class="cnblogs_code">
<pre># telnet localhost <span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">
Trying ::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">...
Connected to localhost.
Escape character </span><span style="color: rgba(0, 0, 255, 1)">is</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^]</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.
</span><span style="color: rgba(128, 0, 128, 1)">220</span><span style="color: rgba(0, 0, 0, 1)"> mail.wq.com ESMTP Postfix
HELO localhost </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">宣告客户地址</span>
<span style="color: rgba(128, 0, 128, 1)">250</span><span style="color: rgba(0, 0, 0, 1)"> mail.wq.com
MAIL FROM:zs@wq.com </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">发件人地址</span>
<span style="color: rgba(128, 0, 128, 1)">250</span> <span style="color: rgba(128, 0, 128, 1)">2.1</span>.<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> Ok
RCPT TO:ls@wq.com </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">收件人地址</span>
<span style="color: rgba(128, 0, 128, 1)">250</span> <span style="color: rgba(128, 0, 128, 1)">2.1</span>.<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)"> Ok
DATA </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">传送数据的内容</span>
<span style="color: rgba(128, 0, 128, 1)">354</span> End data with <CR><LF>.<CR><LF><span style="color: rgba(0, 0, 0, 1)">
Subject:test mail </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 主题</span>
hello!
<span style="color: rgba(0, 0, 255, 1)">this</span> <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> test mail
. </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">最后这个点 表示结束</span>
<span style="color: rgba(128, 0, 128, 1)">250</span> <span style="color: rgba(128, 0, 128, 1)">2.0</span>.<span style="color: rgba(128, 0, 128, 1)">0</span> Ok: queued <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> 508F0104FA00
quit </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 退出</span>
<span style="color: rgba(128, 0, 128, 1)">221</span> <span style="color: rgba(128, 0, 128, 1)">2.0</span>.<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> Bye
Connection closed by foreign host.
查看邮件
# ls /home/ls/Maildir/<span style="color: rgba(0, 0, 255, 1)">new</span>/
<span style="color: rgba(128, 0, 128, 1)">1544098321</span>.Vfd00I3839584M985672.mail.wq.com</pre>
</div>
<p>3.配置收件服务器dovecot</p>
<div class="cnblogs_code">
<pre>yum install dovecot -<span style="color: rgba(0, 0, 0, 1)">y
编辑主配置文件
# vi /etc/dovecot/dovecot.conf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">修改如下几处</span>
<span style="color: rgba(0, 0, 0, 1)">
protocols </span>= imap pop3 lmtp <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">20 行:指定本邮件主机所运行的协</span>
<span style="color: rgba(0, 0, 0, 1)">议
listen </span>= * <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">26 行:监听本机的所有网络接口</span>
login_trusted_networks = <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">95.0</span>/<span style="color: rgba(128, 0, 128, 1)">24</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">38 行:指定允许登</span>
录的网段地址</pre>
</div>
<div class="cnblogs_code">
<pre># vim /etc/dovecot/conf.d/<span style="color: rgba(128, 0, 128, 1)">10</span>-<span style="color: rgba(0, 0, 0, 1)">mail.conf
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">查找以下配置行(第 24 行)并将行首“#”去掉</span>
mail_location = maildir:~/Maildir <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">指定邮件存储格式和位置</span>
<span style="color: rgba(0, 0, 0, 1)">
重启服务
systemctl start dovecot
收信测试
# telnet localhost <span style="color: rgba(128, 0, 128, 1)">110</span><span style="color: rgba(0, 0, 0, 1)">
Trying ::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">...
Connected to localhost.
Escape character </span><span style="color: rgba(0, 0, 255, 1)">is</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^]</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.
</span>+<span style="color: rgba(0, 0, 0, 1)">OK Dovecot ready.
user ls </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户</span>
+<span style="color: rgba(0, 0, 0, 1)">OK
pass </span><span style="color: rgba(128, 0, 128, 1)">123456</span><span style="color: rgba(0, 0, 0, 1)"> 密码
</span>+OK Logged <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">.
list </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">查看邮件</span>
+OK <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)"> messages:
</span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(128, 0, 128, 1)">381</span>
<span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(128, 0, 128, 1)">1561</span>
<span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(128, 0, 128, 1)">401</span><span style="color: rgba(0, 0, 0, 1)">
.
retr </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">查看第一封</span>
+OK <span style="color: rgba(128, 0, 128, 1)">381</span><span style="color: rgba(0, 0, 0, 1)"> octets
Return</span>-Path: <zs@wq.com><span style="color: rgba(0, 0, 0, 1)">
X</span>-Original-<span style="color: rgba(0, 0, 0, 1)">To: ls@wq.com
Delivered</span>-<span style="color: rgba(0, 0, 0, 1)">To: ls@wq.com
Received: </span><span style="color: rgba(0, 0, 255, 1)">from</span> localhost (localhost )
by mail.wq.com (Postfix) with SMTP id 1D391104FA01
</span><span style="color: rgba(0, 0, 255, 1)">for</span> <ls@wq.com>; Thu, <span style="color: rgba(128, 0, 128, 1)">6</span> Dec <span style="color: rgba(128, 0, 128, 1)">2018</span> <span style="color: rgba(128, 0, 128, 1)">04</span>:<span style="color: rgba(128, 0, 128, 1)">38</span>:<span style="color: rgba(128, 0, 128, 1)">13</span> -<span style="color: rgba(128, 0, 128, 1)">0500</span><span style="color: rgba(0, 0, 0, 1)"> (EST)
Subject:test mail
Message</span>-Id: <<span style="color: rgba(128, 0, 128, 1)">20181206093827</span>.1D391104FA01@mail.wq.com><span style="color: rgba(0, 0, 0, 1)">
Date: Thu, </span><span style="color: rgba(128, 0, 128, 1)">6</span> Dec <span style="color: rgba(128, 0, 128, 1)">2018</span> <span style="color: rgba(128, 0, 128, 1)">04</span>:<span style="color: rgba(128, 0, 128, 1)">38</span>:<span style="color: rgba(128, 0, 128, 1)">13</span> -<span style="color: rgba(128, 0, 128, 1)">0500</span><span style="color: rgba(0, 0, 0, 1)"> (EST)
From: zs@wq.com
HELLo
.
quit
</span>+OK Logging <span style="color: rgba(0, 0, 255, 1)">out</span><span style="color: rgba(0, 0, 0, 1)">.
Connection closed by foreign host.</span></pre>
</div>
<p>4.使用windows客户端进行测试<br>下载Foxmail<br>首先测试主机是否能ping通<br>若不能ping通,关闭windows防火墙<br>或者 在windows中做域名与IP的绑定,在c盘:/windows/drivers/system32/etc/hosts<br>写入 192.168.0.155 mail.wq.com<br>添加邮件账号</p>
<p><img src="https://img2020.cnblogs.com/blog/1501534/202005/1501534-20200502103135653-396282326.png"></p>
<p> </p>
<p> </p>
<p>发送邮件</p>
<p><img src="https://img2020.cnblogs.com/blog/1501534/202005/1501534-20200502103143231-1153937164.png"></p>
<p> </p>
<p> </p>
<p><br>在linux中同步可以查看邮件信息</p>
<p><img src="https://img2020.cnblogs.com/blog/1501534/202005/1501534-20200502103156516-703695539.png"></p>
<p> </p>
<p> </p>
<p>测试完成。<br>————————————————<br><br>原文链接:https://blog.csdn.net/wq962464/java/article/details/84864750</p><br><br>
来源:https://www.cnblogs.com/guantou1992/p/12817234.html
頁:
[1]