电子邮件系统

电子邮件系统基于邮件协议来完成电子邮件的传输,常见的邮件协议有:

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。

邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。

Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。

在电子邮件系统中,为用户收发邮件的服务器名为邮件用户代理(Mail User Agent,MUA)。另外,既然电子邮件系统能够让用户在离线的情况下依然可以完成数据的接收,肯定得有一个用于保存用户邮件的“信箱”服务器,

这个服务器的名字为邮件投递代理(Mail Delivery Agent,MDA),其工作职责是把来自于邮件传输代理(Mail Transfer Agent,MTA)的邮件保存到本地的收件箱中。其中,这个MTA的工作职责是转发处理不同电子邮件服务供应商之间的邮件,

把来自于MUA的邮件转发到合适的MTA服务器。例如,我们从新浪信箱向谷歌信箱发送一封电子邮件,这封电子邮件的传输过程如下图所示:

部署基础的电子邮件系统:

一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。

这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件了。电子邮件系统的工作流程如下图所示:

第1步:配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致:

[root@zhangjh ~]# vim /etc/hostname
mail.jianghua.com
[root@zhangjh ~]# hostname
mail.jianghua.com

第2步:清空iptables防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端DNS解析域名及收发邮件:

[root@zhangjh ~]# iptables -F
[root@zhangjh ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

第3步:为电子邮件系统提供域名解析:

[root@zhangjh ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #修改为any
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };      #修改为any
[root@zhangjh ~]# vim /etc/named.rfc1912.zones
zone "jianghua.com" IN {
type master;
file "jianghua.com.zone";
allow-update {none;};
};
[root@zhangjh ~]# vim /var/named/jianghua.com.zone
$TTL 1D
@ IN SOA jianghua.com. root.jianghua.com. (
0;serial
1D;refresh
1H;retry
1W;expire
3H);minimum
NS ns.jianghua.com.
ns IN A 192.168.38.251
@ IN MX 10 mail.jianghua.com.
mail IN A 192.168.38.251
[root@zhangjh ~]# vim /var/named/jianghua.com.zone
[root@zhangjh ~]# vim /var/named/jianghua.com.zone
[root@zhangjh ~]# systemctl restart named
[root@zhangjh ~]# systemctl enable named
ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'

修改好配置文件后记得重启bind服务程序,这样电子邮件系统所对应的服务器主机名即为mail.jianghua.com,而邮件域为@jianghua.com。把服务器的DNS地址修改成本机IP地址

  

  • 配置Postfix服务程序  

第1步:安装Postfix服务程序。

[root@zhangjh ~]# yum install postfix -y
[root@zhangjh ~]# systemctl disable iptables

第2步:配置Postfix服务程序。(/etc/ postfix/main.cf)

Postfix服务程序主配置文件中的重要参数:

参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件
[root@zhangjh ~]# vim /etc/postfix/main.cf
74 #
75 #myhostname = host.domain.tld
76 myhostname = mail.jianghua.com    #定义一个名为myhostname的变量,用来保存服务器的主机名称
82 #
83 mydomain = jianghua.com      #定义一个名为mydomain的变量,用来保存邮件域的名称
97 #
98 #myorigin = $myhostname    
99 myorigin = $mydomain      #调用前面的mydomain变量,用来定义发出邮件的域
114 #inet_interfaces = $myhostname
115 #inet_interfaces = $myhostname, localhost
116 inet_interfaces = all      #定义网卡监听地址
164 #
165 mydestination = $myhostname,$mydomain      #定义可接收邮件的主机名或域名列表

  

第3步:创建电子邮件系统的登录账户,重启postfix服务

[root@zhangjh ~]# useradd boss
[root@zhangjh ~]# echo "zhangjianghua66666" | passwd --stdin boss
Changing password for user boss.
passwd: all authentication tokens updated successfully.
[root@zhangjh ~]# systemctl restart postfix.service
[root@zhangjh ~]# systemctl enable postfix
  • 配置Dovecot服务程序

Dovecot是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源服务程序,安全性极高,配置简单,执行速度快,而且占用的服务器硬件资源也较少,因此是一款值得推荐的收件服务程序。

第1步:安装Dovecot服务程序软件包。

[root@zhangjh ~]# yum install dovecot -y

第2步:配置部署Dovecot服务程序。

[root@zhangjh ~]# vim /etc/dovecot/dovecot.conf
23 # Protocols we want to be serving.
24 protocols = imap pop3 lmtp      #修改电子邮件协议,为imap,pop3,lmtp
25 disable_plaintext_auth = no    #允许用户使用明文进行密码验证
48 login_trusted_networks = 192.168.38.0/24    #设置允许登录的网段地址,默认允许所有人

第3步:配置邮件格式与存储路径。

[root@zhangjh ~]# vim /etc/dovecot/conf.d/10-mail.conf
24 # mail_location = maildir:~/Maildir
25 mail_location = mbox:~/mail:INBOX=/var/mail/%u    #指定要将收到的邮件存放到服务器本地的哪个位置,默认已经设置好,去掉注释即可。
26 # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n

第4步:然后切换到配置Postfix服务程序时创建的boss账户,并在家目录中建立用于保存邮件的目录。记得要重启Dovecot服务并将其添加到开机启动项中。  

[root@zhangjh ~]# su - boss
[boss@mail ~]$ mkdir -p mail/.imap/INBOX
[boss@mail ~]$ exit
logout
[root@zhangjh ~]# systemctl restart dovevot
Failed to issue method call: Unit dovevot.service failed to load: No such file or directory.
[root@zhangjh ~]# systemctl restart dovecot
[root@zhangjh ~]# systemctl enable dovecot
ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
  • 使用电子邮件系统  

windows系统用foxmail测试即可。邮箱名:boss@jainghua.com 密码:password

邮件系统之Postfix与Dovecot的更多相关文章

  1. Linux基础学习-Postfix与Dovecot部署邮件系统

    电子邮件系统 电子邮件系统是我们在日常工作.生活中最常用的一种网络服务. 部署基础的电子邮件系统 [root@qdlinux ~]# yum install bind-chroot -y [root@ ...

  2. 《Linux就该这么学》培训笔记_ch15_使用Postfix与Dovecot部署邮件系统

    <Linux就该这么学>培训笔记_ch15_使用Postfix与Dovecot部署邮件系统 文章最后会post上书本的笔记照片. 文章主要内容: 电子邮件系统 配置Postfix服务程序 ...

  3. 第15章 使用Postfix与Dovecot收发电子邮件

    章节概述: 本章节从电子邮局系统的组成角色开始讲起,了解MUA.MTA与MDA的作用,熟悉熟悉SMTP.POP3与IMAP4邮局协议. 学习postfix与dovecot服务程序的使用方法并逐条讲解配 ...

  4. linux入门系列17--邮件系统之Postfix和Dovecot

    前文演示了通过Samba和NFS实现文件共享,本篇演示使用Postfix和Dovecot在局域网实现电子邮件收发系统. 电子邮件系统是我们日常生活和工作中非常重要的一个网络服务,在windows下收发 ...

  5. 最新ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)

      最近做了一个应用,需要用邮件发通知,但是免费的邮箱每天发信数量是有限制的,所以呢就想着搭建一个自己的邮件服务器,能够实现邮件的发送和接收即可,其中大概花了一个星期找资料,测试,终于成功了,写个教程 ...

  6. Linux+postfix+extmail+dovecot打造基于web页面的邮件系统

    原文地址:http://blog.csdn.net/deansrk/article/details/6717720 最终效果图: 准备阶段:需要手动下载的软件包: postfix-2.6.5.tar. ...

  7. 【linux基于Postfix和Dovecot邮件系统的搭建】

    一:PostFixe和Dovecot的简单介绍 Postfix postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Ven ...

  8. 使用Postfix与Dovecot部署邮件系统

  9. 最具体的历史centos下一个 postfix + extmail + dovecot + maildrop 安装注意事项2014更新

    这篇文章原本是2008年发表的,近期几天照此笔记又安装了一遍系统.这里更新一下记录. 作者:wangdy 本文发表于  http://blog.csdn.net/aryang/article/deta ...

随机推荐

  1. hibernate 模拟实现和What is and Why O/R Mapping

    What is and Why O/R Mapping What is : 用面向对象的方式调用api,类库帮我们翻译成面向关系的方式. Why: 1.JDBC操作数据库很繁琐2.Sql 语句编写并不 ...

  2. 来自SaberSama的HTML总结

    html 为什么要转过来呢? 因为我觉到,同样是一个初学者,应该互相学习,交流. html:是Hyper Text Markup Language的简写,即超文本标记语言. 网页的组成成分为HTML- ...

  3. Hadoop常用操作

    Hadoop常用操作 1.Hadoop安装 略 2.Hadoop配置 略 3.Hadoop多目录配置 namenode和datanode节点下都可以进行多个目录的配置,但是意义不同.namenode的 ...

  4. nginx配置优化-生产环境应用版

    user www www; worker_processes auto; worker_cpu_affinity auto; error_log /usr/local/nginx/logs/error ...

  5. 五环之歌之PHP分页

    根据以往的经验,对于很多初学者,分页功能实现起来还是有一定的困难的,为了帮大家解决这样的问题:特此献上五环之歌.从此分页功能便是如小岳岳唱歌一样简练,漂亮,精干.哈哈,不闲扯了.正式进入千锋PHP五环 ...

  6. 基于FPGA的VGA显示设计(二)

    上一篇:基于FPGA的VGA显示设计(一)     参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码  的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层 ...

  7. ModuleNotFoundError: No module named 'yaml'

    ModuleNotFoundError: No module named 'yaml' 需要安装 pyyaml 包

  8. 在VirtualBox ubuntu/linux虚拟机中挂载mount共享文件夹

    referemce: https://www.smarthomebeginner.com/mount-virtualbox-shared-folder-on-ubuntu-linux/ 1) Virt ...

  9. IOS 获取.plist文件的数据

      @property (nonatomic,strong) NSArray *apps; //获取.plist数据 /**获取plist文件的数组数据*/ -(NSArray *)apps{ if( ...

  10. POJ-2503 Babelfish---map或者hash

    题目链接: https://vjudge.net/problem/POJ-2503 题目大意: 就像查找一本字典,根据输入的条目和要查询的单词,给出查询结果(每个单词长度不超过10) 解题思路: ma ...