搭建邮件服务器

  • postfix
  • 邮件系统的组成
  • 邮件服务工作流程
  • 三种协议
    • SMTP
    • POP3
    • IMAP
    • POP3 和 IMAP 区别
  • 常用端口
  • mail命令
  • 邮件群发
  • 搭建框架
  • Linux系统上搭建邮件服务器
    • 1、配置postfix服务 (自定义邮件域信息)
      • 解读postfix 主配置文件
    • 2、配置dovecot服务
    • 3、开启SASL认证
    • 4、配置DNS服务器
    • 5、创建用户
    • 6、验证
  • 虚拟别名域

postfix

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性,因此它是免费的。现在主流邮件服务都在采用postfix. 当需要一个轻量级的的邮件服务器时,postfix也是一种选择。

邮件系统的组成

每个邮件系统主要由4部分组成:

  • MUA:邮件用户代理,客户端收发邮件的软件——写信人
  • MDA:邮件投递代理,在邮件服务器上将邮件存放到相应的位置——邮件投递
  • MTA:邮件传输代理,服务器上的部署邮件服务器的软件——邮件装箱发送
  • MRA:邮件收取代理,为MUA读取邮件提供标准接口,主要使用POP3和IMAP协议——收件人

邮件服务工作流程

  1. 两个不同的域的用户进行邮件收发
  2. 使用客户端或者编辑器写邮件发送到自己域内的邮件服务器
  3. 邮件服务器通过域内的客户端发送邮件到目标域
  4. 客户端通过DNS查询MX记录和A记录解析对方的IP地址,多个MX记录就找优先级高的——10
  5. 目标服务端的服务正常监听在指定端口上来接收客户端的请求
  6. 确认邮件的目标用户是否在本域
  7. 如果在域内,通过邮件投递代理把邮件存放到指定的邮件目录 /var/spool/mail/redhat
  8. 该用户登录系统后进行邮件检测,然后收取邮件即可

三种协议

邮件服务器采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。

SMTP

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

ESMTP:(Extended SMTP) 是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。在所有的验证机制中,信息全部采用Base64编码。验证之后的邮件发送过程与 SMTP方式没有两样。

POP3

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。

(与IMAP有什么区别?)
Pop3是从邮件服务器中下载邮件存起来支持不在线用户,基于TCP/IP,明文,使用110端口 问题:不能同步

IMAP

IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,
它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

(与POP3有什么区别?)
将邮件留在服务器端直接对邮件进行管理、操作,比POP3更先进支持邮件头部预览主题来源,基于TCP/IP,使用143端口

POP3 和 IMAP 区别

  1. IMAP客户端上收取邮件后邮件依旧保留在服务器上,同时在客户端上的操作也会保留在服务器端,POP3不会;
  2. IMAP更好的支持从多个设备中随时访问新邮件;
  3. IMAP提供的摘要游览功能可以让你阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作初是否下载的决定;
  4. pop3需要下载所有的邮件,IMAP不能将所有的邮件下载,而是通过客户端直接对服务器上的邮件进行操控。所有的IMAP可以对数据进行加密从而保证通信安全;
  5. IMAP整体上为用户带来了更为便捷和可靠的的体验,pop3 更容易丢失邮件或者多次重复下载相同的邮件;

常用端口

 25      smtp    发送邮件110     pop3    接收邮件143     imap    接收邮件995     pop3s993        imaps465        smtps

mail命令

#写邮件给redhat
mail to redhat
#输入邮件的主题,冒号前的为提示信息
Subject:test
#输入主题后会返回空白提示,输入邮件内容
mail body,mail content.
#按下CTRL+d按键保存发送,回显一个标记
EOT
#到redhat用户查收邮件
su - redhat
#使用mail命令查看自己的邮件,返回以下信息:
mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/redhat": 1 message 1 new
>N  1 root                  Sun Apr 24 02:18  19/640   "test"
&_(下划线为提示符)
#输入1查看编号为1的邮件
1
Message  1:
From root@localhost.localdomain  Sun Apr 24 02:18:54 2016
Return-Path: <root@localhost.localdomain>
X-Original-To: redhat
Delivered-To: redhat@localhost.localdomain
Date: Sun, 24 Apr 2016 02:18:54 +0800
To: redhat@localhost.localdomain, to@localhost.localdomain
Subject: test
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@localhost.localdomain (root)
Status: R

邮件群发

以root发送 workgroup组中的用户都可以收到邮件

#编辑文件
vim /etc/aliases
#加入以下内容
Workgroup:  user1,user2,redhat
workgroup1: redhat,user3
#使用postalias命令将别名文件转换成数据库
[root@mail ~]# postalias /etc/aliases#群发邮件
mail to workgroup
#进入各自家目录验证
su - user1
su - user2

搭建框架

在linux7.X 版本上搭建基于Postfix SASL 以及Dovecot搭建一个功能完整的邮件服务器。

服务器   postfix   +SASL + dovecot
客户端
  • Postfix 发送邮件服务
  • SASL 全称Simple Authentication and Security
    Layer,是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器。
  • Dovecot 接受邮件服务
  • 客户端我们通过使用FOXmail软件测试

Linux系统上搭建邮件服务器

1、配置postfix服务 (自定义邮件域信息)

#配置邮件服务器主机名
76 myhostname = mail.qq.com#配置域名(这个邮件服务器管理的是哪个区域范围的邮件发送)
83 mydomain = qq.com#指定邮件发送时的域名
99 myorigin = $mydomain#指定网络接口(默认只监听本地但是如果要与外界通信那么就要监听所有地址)
113 inet_interfaces = all
116 注释掉#指定服务器的目标区域  设置邮件可以发送到哪些域名
164 mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain#指定允许网络网段地址,设置信任的邮件客户端地址
264 mynetworks = 192.168.0.0/24#转发域   设置邮件转发到哪去
296 relay_domains = $mydestination

解读postfix 主配置文件

安装postfix,默认已经安装
yum install postfix -y
主配置文件——/etc/postfix/main.cf

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix  所有在master.cf中用到的服务程序存放的路径
data_directory = /var/lib/postfix    存放缓存。随机数等可写的书籍文件存放位置
mail_owner = postfix
default_privs=nobody 本地投递代理的运行身份
myhostname=host.domain.tld设置邮件服务器的完全合格的域名
mydomain=domian.tld  本地域名
myorigin=$mydomain 发送邮件时设置的发件人的域名
inet_interfaces = localhost  设置postfix从哪个接口接受邮件
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost  设置邮件可以发送到哪些域名
unknown_local_recipient_reject_code = 550 拒绝邮件的错误代码550
mynetworks=168.100.189.0/28,127.0.0.0/8 设置信任的邮件客户端地址
relay_domains=$mydestination 设置邮件转发到哪去
alias_maps = hash:/etc/aliases   设置别名数据库
alias_database = hash:/etc/aliases
Header_checks=regexp:/etc/postfix/header_checks 检查邮件有的 设置
sendmail_path = /usr/sbin/sendmail.postfix   postfix发送邮件的程序路径
newaliases_path = /usr/bin/newaliases.postfix    postfix完整的别名程序路径
mailq_path = /usr/bin/mailq.postfix      postfix的mailq程序路径
setgid_group = postdrop   设置邮件提交和队列管理的命令
html_directory = no  本地没有安装postfix的html文档
manpage_directory = /usr/share/man     帮助手册的位置
sample_directory = /usr/share/doc/postfix-2.10.1/samples   示例目录的位置
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES 自述目录位置

2、配置dovecot服务

dovecot: 邮件接收服务器

#配置dovecot主配置文件
[root@localhost ~]# vi /etc/dovecot/dovecot.conf  (本地邮件传输协议)
24 protocols = imap pop3 lmtp
48 login_trusted_networks = 192.168.0.0/24  允许登录接受的ip段#配置dovecot子配置文件
[root@localhost ~]# vi /etc/dovecot/conf.d/10-mail.conf
25 mail_location = mbox:~/mail:INBOX=/var/mail/%u
添加用户之后,需要在用户目录下建立INBOX文件夹,否则后面在收信的时候会报错。

注意:有的系统可能没有权限

chmod 600 /var/mail/*

如果不执行上面这个命令,可能会出现在系统中可以收到邮件,但是客户端无法收到邮件,注意查看系统/var/log/maillog日志

3、开启SASL认证

开启SASL认证sasl auth model
编辑main.cf配置文件,追加如下行:

[root@localhost ~]# vi /etc/postfix/main.cf
broken_sasl_auth_clients = yes
#启用SASL对客户端进行认证
smtpd_sasl_auth_enable = yes
#启用SASL认证
smtpd_sasl_security_options = noanonymous
#匿名用户
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
#定义收件人限定   =允许sasl接收限制l认证,允许mynetworks,拒绝unauth目的地

#配置完成后,重启以下服务
systemctl restart postfix
systemctl restart dovecot
systemctl restart saslauthd

如果有问题可以查看日志修改

tail -f /var/log/maillog   查看日志信息

4、配置DNS服务器

yum install bind -y  安装软件

修改dns配置文件
[root@localhost ~]# vim /etc/named.conf

创建对应资源文件
[root@localhost ~]# vim /var/named/named.qq.com


修改dns服务器地址
[root@localhost ~]# vim /etc/resolv.conf

5、创建用户

[root@localhost mail]# useradd xixi
[root@localhost mail]# useradd haha
[root@localhost mail]# useradd hehe
[root@localhost mail]# echo redhat | passwd --stdin xixi
更改用户 xixi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost mail]# echo redhat | passwd --stdin hehe
更改用户 hehe 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost mail]# echo redhat | passwd --stdin haha
更改用户 haha 的密码 。
passwd:所有的身份验证令牌已经成功更新。

6、验证

在window安装foxmail,打开foxmail,手动添加用户,用户间互发邮件进行验证

虚拟别名域

在qq域的主配置文件中添加如下内容:

[root@mail ~]# vi /etc/postfix/main.cf
virtual_alias_domains = work.com    (虚拟)
virtual_alias_maps = hash:/etc/postfix/virtual     ---映射

在虚拟别名域中添加如下内容

#vim /etc/postfix/virtual
@work.com     @qq.com        #work对应的是qq域

注意:如果是本域用户不需要加后缀。

每次改变该文件,需要执行以下两个命令

#重新生成虚拟别名域数据库
[root@mail ~]# postmap /etc/postfix/virtual
#重新加载虚拟别名域数据文件
[root@mail ~]# systemctl reload postfix

测试 —— 以一个用户身份发送邮件给设定好的虚拟用户发送邮件

RHCE(十三)用postfix搭建邮件服务器相关推荐

  1. Postfix 搭建邮件服务器

    阿里云25端口封掉,就不用想了 使用的是Postfix和Dovecot来搭建,用Foxmail客户端登陆测试收信.发信均没问题 先了解几个email有关的名词: MUA:用户代理端,即用户使用的写信. ...

  2. 【验】Postfix+Dovecot+MySQL搭建邮件服务器

    网上有很多使用Postfix搭建邮件服务器的文章,但目前貌似没有看到较为完整的一篇.本例将尝试在Ubuntu系统中使用Postfix+Dovecot+MySQL搭建邮件服务器. 说到邮件服务器,网上有 ...

  3. 虚拟机安装postfix服务器,CentOS 7 下搭建邮件服务器(bind+postfix+dovecot)

    CentOS 7下搭建邮件服务器 前提环境:CentOS 7虚拟机IP为192.168.43.124 主机名为mail.zxp.com 修改主机名:hostnamectl set-hostname m ...

  4. centos6.8 搭建postfix/dovecot邮件服务器

    postfix/dovecot邮件服务器 安装配置参考链接  http://www.cnblogs.com/jkklearn/p/7280045.html (domain 为自己域名 xxx.com) ...

  5. Linux-Postfix+Dovecot+Postfixadmin+Roundcubemail 搭建邮件服务器管理系统(一)

    搭建邮件服务器管理系统概述和环境信息说明 1.概述 MUA(Mail User Agent),邮件用户代理:Outlook,Foxmail. MTA(Mail Transfer Agent),邮件传输 ...

  6. 搭建邮件服务器 dns,搭建DNS服务器+邮件服务器

    一·搭建DNS服务器 试验要求:完成DNS的正反向解析 试验前准备: 服务器 192.168.203.201 server1.example.com 客户机 192.168.203.202 serve ...

  7. 搭建邮件服务器过程,关于服务器:搭建邮件服务器过程非常简单

    通常在Linux搭建邮件服务器是须要装置很多软件和配置文件的,所以咱们能够应用一个开源邮件服务器软件来搭建的. 筹备一台服务器与零碎 云服务器或本地虚构的服务器都能够. 服务器须要能链接网络. 装置c ...

  8. 搭建邮件服务器,过程非常简单

    搭建邮件服务器,过程非常简单,只需几个步骤即可. 通常在Linux搭建邮件服务器是需要安装很多软件和配置文件的,所以我们可以使用一个开源邮件服务器软件来搭建的. 准备一台服务器与系统 云服务器或本地虚 ...

  9. Linux Centos7搭建邮件服务器

    Linux Centos7搭建邮件服务器 基于sendmail和Dovecot 一.关闭防火墙和selinux systemctl stop firewalld setenctoce 0 二.下载se ...

最新文章

  1. 这个神奇的网站提供各种图的代码供您参考!
  2. 为什么开源的代码没有注释_代码注释那些事儿
  3. oracle 数字类型行转列,oracle行转列
  4. mysql群集配置_mysql8 参考手册-NDB群集配置参数,选项和变量概述
  5. favicon图标制作
  6. CentOS添加明细路由
  7. 辽宁计算机专业院校排名2015,liaoning高校排行榜_辽宁高校排名 2015年辽宁省最佳大学排行榜...
  8. 【EXCEPTION_INIT】自定义错误名称并关联错误号
  9. linux暂停和恢复进程
  10. imx6ull boot 启动
  11. uniapp导入高德地图三维模型实现webview和页面通讯
  12. 【迅为6818开发板资料】安卓7.1 系统编译手册
  13. win10无法装载iso文件_win10系统打开iso格式文件的四种方法
  14. 安全认证之JWT令牌
  15. 椭圆检测 Arc Adjacency Matrix-Based Fast Ellipse Detection 代码和数据集使用教程
  16. 水电水利建设项目水环境与水生生态保护技术政策
  17. 怎么保存ppt到计算机,怎么把ppt保存到u盘
  18. Python3正则表达式(慢慢更新中~)
  19. 饥荒联机版 服务器未响应,饥荒联机版常见问题汇_饥荒联机版常见问题大全_快吧单机游戏...
  20. 全网首档会员付费网综领跑曲艺文化新形态 爱奇艺《坑王驾到》第二季28日上线...

热门文章

  1. vue结合element-ui美化登录页面
  2. C#使用ManagementObjectSearcher获取本计算机CPU,硬盘,内存条等相关设备信息
  3. SPLASHTOP管控系统
  4. 金迪短信猫在linux下面的应用
  5. excel怎么自动换行
  6. 三星a9s参数_三星a9参数详细参数
  7. ASP.NET Core项目基于Windows 服务的打包托管
  8. 如何快速的发表论文?推荐一个很好发表论文的期刊
  9. java勇士闯关打败魔王的游戏_明明我真的是勇者!!_[推荐+关卡介绍]真正的勇者变成史莱姆也可以打败魔王!!_安卓应用游戏下载- AppChina应用汇...
  10. xcode 工程没有模拟器_ios – 我的简单地图项目没有在模拟器中显示和显示我的位置...