1. Postfix

1.1 邮件服务的介绍

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。

电子邮件可以是文字、图像、声音等多种形式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。电子邮件的存在极大地方便了人与人之间的沟通与交流,促进了社会的发展。

什么是电子邮件系统

电子邮件系统是一种能够书写、发送、存储和接收信件的电子通信系统

邮件系统由两部分组成

MTA(邮件传输代理)

MUA(邮件用户代理)

1.2 电子邮件收发的过程

1.3 邮件传输过程

(1)客户机调用用户代理来编辑要发送的邮件。用户代理用SMTP将邮件传送给发送端邮件服务器

(2)发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。

(3)SMTP按照C/S方式工作。运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立

(4)当TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器发送邮件。如果有多个邮件在邮件缓存中,则SMTP客户一一将它们发送到远程的SMTP服务器。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接

(5)运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取

(6)收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回

1.4 电子邮件的协议

1. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),是电子邮件的发送方向接收方传递邮件时使用的单向传输协议,默认使用TCP端口为25。配置了SMTP协议的电子邮件服务器称为SMTP服务器。SMTP服务器接收客户机发送的电子邮件,向其他的SMTP服务器发送电子邮件,但不能从别的SMTP服务器接收电子邮件

2. POP3(Post Office Protocol Version 3,邮局协议,版本3),是电子邮件接收方向电子邮局发出接收邮件请求时使用的单向传输协议,默认使用TCP端口为110。配置了POP3协议的电子邮件服务器称为POP3服务器。POP3服务器将电子邮件发送给客户机或者从别的POP3服务器接收电子邮件,但不能向别的POP3邮件服务器发送电子邮件

1.5 Postfix的介绍

Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。

postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。

大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程。该进程也是一个后台程序。

这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。

1.6 Postfix特点

1、postfix是免费的;

2、性能好,大约比sendmail×××倍,一台运行postfix的台式pc每天可收发上百万邮件;

3、兼容sendmail

4、健壮稳定,postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加;

5、灵活性好,postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。

6、安全性,postfix具有多层防御结构,可以有效地抵御恶意者,可以运行在较低的权限之下;

1.7 部署Postfix

1.7.1 环境准备

OS版本:centos 7.5 64bit

mail-server ip :192.168.1.242

mial-client ip :192.168.1.200

[root@mail-server ~]# cat /etc/redhat-release #查看系统版本

[root@mail-server ~]# uname -r #查看内核版本

[root@mail-server ~]# systemctl stop ebtables firewalld #关闭ebtables防火墙

[root@mail-server ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙

[root@mail-server ~]# vim /etc/sysconfig/selinux #设置selinux 状态为disabled

[root@mail-server ~]# setenforce 0 # 临时将selinux设置为disabled

[root@mail-server ~]# getenforce #检测selinux是否关闭

[root@mail-server ~]# ifconfig ens33 |awk -F '[ :]+' 'NR==2{print $3}' #查看IP地址

[root@mail-server ~]# hostname #查看主机名

1.7.2 配置DNS解析

1.安装bind服务

[root@mail-server ~]# yum -y install bind

2.编辑bing的主配置文件

[root@mail-server ~]# vim /etc/named.conf

[root@mail-server ~]# vim /etc/named.rfc1912.zones

3.添加mail邮件解析记录

[root@mail-server ~]# vim /var/named/vancen.com.zone

4.重启DNS服务

[root@mail-server ~]# systemctl restart named

[root@mail-server ~]# systemctl enable named

[root@mail-server ~]# systemctl status named

1.7.3 配置Postfix服务程序

1. 安装postfix软件

[root@mail-server ~]# yum -y install postfix

2. 修改配置文件

[root@mail-server ~]# vim /etc/postfix/main.cf

76 myhostname = mail.vancen.com

83 mydomain = vancen.com

99 myorigin = $mydomain

116 inet_interfaces = all

164 mydestination = $myhostname , $mydomain

3. 重启服务

[root@mail-server ~]# systemctl restart postfix

[root@mail-server ~]# systemctl enable postfix

[root@mail-server ~]# systemctl status postfix

4. 创建邮件账户

Postfix可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。

[root@mail-server ~]# useradd chenjf

[root@mail-server ~]# echo "chenjf" | passwd --stdin chenjf

1.7.4 配置Dovecot服务程序

1. 安装Dovecot服务程序软件包。

[root@mail-server ~]# yum -y install dovecot

2. 配置部署Dovecot服务程序。

[root@mail-server ~]# vim /etc/dovecot/dovecot.conf

在Dovecot服务程序的主配置文件中进行如下修改。首先是第24行,把Dovecot服务程序支持的电子邮件协议修改为imap、pop3和lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。之所以这样操作,是因为Dovecot服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录。

在主配置文件中的第46行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数: 此处我就仅允许我同一网段的使用。

3. 配置邮件格式与存储路径。

在Dovecot服务程序单独的子配置文件中,定义一个路径,用于指定要将收到的邮件存放到服务器本地的哪个位置。这个路径默认已经定义好了,我们只需要将该配置文件中第25行前面的井号(#)删除即可。

切换到配置Postfix服务程序时创建的chenfj账户,并在家目录中建立用于保存邮件的目录。至此,对Dovecot服务程序的配置部署步骤全部结束。

4. 重启Dovecot服务并将其添加到开机启动项中。

[root@mail-server ~]# systemctl restart dovecot

[root@mail-server ~]# systemctl enable dovecot

1.7.5 客户端验证

1. 修改客户端DNS解析地址

2. 打开postfix使用chenjf@vancen.com登录

3. 设置接收服务器类型为POP3

4. 新建账户创建成功

5. 给root发送一封邮件

6. 邮件发送成功

7. 在mail-server服务器上查看是否收到邮件

1.7.6 设置用户别名邮箱

用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户以接受发送的邮件,从而保证自身的邮件地址不被泄露,还可以用来接收自己的多个信箱中的邮件。

1. 在客户端给bin发送一封邮件

2. 切换bin用户查看邮件,

切换用户被拒绝,因为bin账户在Linux系统中是系统账户,默认的Shell终端是/sbin/nologin,因此在以bin账户登录时,系统会提示当前账户不可用。

3. 使用在mail-server服务器上使用mail命令查看root室友收到邮件

aliases邮件别名服务的配置文件是专门用来定义用户别名与邮件接收人的映射。除了使用本地系统中系统账户的名称外,我们还可以自行定义一些别名来接收邮件。例如,创建一个名为happy的账户,而真正接收该账户邮件的应该是root账户。

4. 在别名的配置文件中添加一行happy: root

5. 使用newaliases命令,其目的是让新的用户别名配置文件立即生效。

6. 在给happy发送一封邮件

7. 在mail-servre服务器上查看是否收到邮件。

收到了邮件证明用户别名设置无误。

Centos7.5 部署postfix邮件系统的更多相关文章

  1. GIT-Linux(CentOS7)系统部署git服务器

    GIT-Linux(CentOS7)系统部署git服务器 root账号登录 一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget ...

  2. Centos7安装部署搭建gitlab平台、汉化

    Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...

  3. 在 CentOS7 上部署 MySQL 主从

    在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...

  4. 在 CentOS7 上部署 zookeeper 服务

    在 CentOS7 上部署 zookeeper 服务 1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/too ...

  5. 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客

    前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...

  6. CentOS7.4部署Python3+Django+uWSGI+Nginx

    CentOS7.4部署Python3+Django+uWSGI+Nginx http://www.showerlee.com/archives/2590

  7. CentOS7安装部署zabbix3.4操作记录

    CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...

  8. centos7.2 部署zabbix 3.2.7

    centos7.2 部署zabbix 3.2.7[zabbix@zabbixServer ~]$ cat /etc/redhat-release CentOS Linux release 7.2.15 ...

  9. CentOS7中部署Showdoc

    目录 CentOS7中部署Showdoc 前置环境 部署 配置文件 解压安装包 添加启动服务 设置权限 运行安装 界面 CentOS7中部署Showdoc 文:铁乐与猫 前置环境 因为showdoc其 ...

随机推荐

  1. RSA算法原理——(2)RSA简介及基础数论知识

    上期为大家介绍了目前常见加密算法,相信阅读过的同学们对目前的加密算法也算是有了一个大概的了解.如果你对这些解密算法概念及特点还不是很清晰的话,昌昌非常推荐大家可以看看HTTPS的加密通信原理,因为HT ...

  2. Android Native App自动化测试实战讲解(下)(基于python)

    6.Appuim自动化测试框架API讲解与案例实践(三) 如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例: 6.1,scroll():如图2 从图3中可以看到当前页面的所有元素r ...

  3. Asp.Net SignalR 集线器不使用代理的实现

    不使用生成代理JS的实现 可能有同学会觉得使用集线器很麻烦,要么引入虚拟目录,要么在生成期间生成js文件,再引入js文件进行开发.难道就没有比较清爽的方式吗?这个当然是有的,先不要(。・∀・)ノ゙嗨皮 ...

  4. 基于open62541的opc ua 服务器开发实现(1)

    关于opcua的介绍这里就不多说了,相信大家大都有了一些了解,open62541是一个开源C(C99)的opc-ua实现,开源代码可在官网或github上下载. 话不多说,首先搭建一个opcua服务器 ...

  5. 再谈包访问权限 子类为何不能使用父类protected方法

    可见范围 权限的含义应该理解为控制范围,要把它理解成一个限制范围的空间,更为准确的说叫做可见范围 访问控制的等级,从最大权限到最小权限依次为:public.protected.包访问权限(没有关键词) ...

  6. React Fiber 数据结构揭秘

    此章节会通过两个 demo 来展示 Stack Reconciler 以及 Fiber Reconciler 的数据结构. 个人博客 首先用代码表示上图节点间的关系.比如 a1 节点下有 b1.b2. ...

  7. Spring Cloud Alibaba基础教程:使用Nacos作为配置中心

    通过本教程的前两篇: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方 ...

  8. MySQL数据库性能优化(享学课堂听课笔记)

    1.场景: 2张表A表 200W条数据,关联表B表3W条数据,AB有主外键关系. 案例1. 35S 使用关联子查询,查询时间35S 案例2. 19S 使用连表查询 (Left  join ,Inner ...

  9. hive 中遇到的正则

    1.提取科室中,"科"字前面的内容 regexp_extract(t1.doctor_department_format,'(.*)科') 2.去除字符串中的数字 第一种方式: S ...

  10. RESTful api风格介绍

    RESTful 接口是目前来说比较流行的一种接口,平常在开发中会非常常见. 有过和后端人员对接接口的小伙伴都应该知道,我们所做的大多数操作都是对数据库的四格操作 “增删改查” 对应到我们的接口操作分别 ...