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. Python内置函数(13)——complex

    英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or convert ...

  2. 不是 HTTPS 拖慢网站速度,而是优化做的不够优秀

    HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTT ...

  3. gradle插件从3.2.0升级到3.2.1后报错Error: Cannot create directory 项目目录\thirdlib\build\intermediates\packaged_res\debug\drawable

    报错信息如下:  解决方案: 删除thirdlib\build目录,然后重新编译. 但是紧接着又会报类似的错误,只不过build目录变成其他module的了. 所以,先clear build,然后再重 ...

  4. Solr 01 - 什么是Solr + Solr安装包目录结构说明

    目录 1 Solr概述 1.1 Solr是什么 1.2 Solr与Lucene的区别 2 Solr文件说明 2.1 Solr的目录结构 2.2 其他常用概念说明 2.3 创建基础文件目录 2.4 so ...

  5. C#2.0之可空类型

    可空类型Nullable<T> 在C#2.0之前 ,值类型一直不可以为null,但是实际开发中常常会有这样的需求,比如结束时间. 为什么不可以为null 对于引用类型来说,null代表着空 ...

  6. 完美数据迁移-MongoDB Stream的应用

    目录 一.背景介绍 二.常见方案 1. 停机迁移 2. 业务双写 3. 增量迁移 三.Change Stream 介绍 监听的目标 变更事件 四.实现增量迁移 五.后续优化 小结 附参考文档 一.背景 ...

  7. C++STL模板库序列容器之deque

    目录 一丶队列容器deque简介 二丶使用代码演示 一丶队列容器deque简介 deque底层跟vector一样,都是数组维护.不同的是可以操作头部. 二丶使用代码演示 #define _CRT_SE ...

  8. [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念

      本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程?   java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的 ...

  9. F#周报2019年第8期

    新闻 Fable 2.2发布,支持匿名记录 Paket提升还原时间 Microsoft.Jupyter.Core预览 .NET Framework 4.8早期可访问编译版本3745 博客 使用SAFE ...

  10. 你需要一点点CIL

    1.当我们程序集中有大量反射的时候,性能往往会下降很快.我们目的很明确 如何解决反射造成的这些影响,其中之一个正确且高逼格的做法是 使用 CIL指令去实现.如何实现需要我们拥有若干基础知识.知道 CI ...