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预编译函数compile,exec,eval

    funcname = "func" func = "def %s():\n" % funcname funccontent = 'print "hel ...

  2. 说一说MVC的CSRF(三)

    用途:防止CSRF(跨网站请求伪造). 用法:在View->Form表单中:<%:Html.AntiForgeryToken()%> 在Controller->Action动作 ...

  3. solr之环境配置四

    Solr链接数据库(mysql,mssql) 一.链接mysql 1.使用DataImportHandler导入并索引数据,配置 $SOLR_HOME\core0\conf\solrconfig.xm ...

  4. Jenkins时间修改为北京时间

    jenkins安装后时间一直是utc时间,不太方便. 系统管理->脚本命令行 运行: System.setProperty('org.apache.commons.jelly.tags.fmt. ...

  5. SmartSql 类型处理器

    Nuget 安装 Install-Package SmartSql.TypeHandler -Version 3.0.1 SmartSql.TypeHandler 包括了俩种类型的类型处理程序: Js ...

  6. kubernetes进阶之一:简单例子

    kubernetes 从一个简单例子开始 参考 <kubernetes 权威指南>一节的 从一个简单例子开始,操作实录. 一.Java Web 应用结构 二.启动MySql服务 1.首先为 ...

  7. [九]JavaIO之ObjectInputStream 和 ObjectOutputStream

    序列化 序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程 序列化是一种轻量级的持久化,对象都是存活在内存中的,当JVM运行结束,对象便不存在 ...

  8. SpringMvc 请求中日期类型参数接收一二事儿

    首先说明:以版本为Spring 4.3.0为测试对象: 开启<mvc:annotation-driven /> 测试场景一:请求中含有date属性,该类型为日期类型,SpringMvc采用 ...

  9. k8s运行容器之Job(四)--技术流ken

    Job 容器按照持续运行的时间可分为两类:服务类容器和工作类容器. 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等.工作类容器则是一次性任务,比如批处理程序, ...

  10. k8s重要概念及部署k8s集群(一)--技术流ken

    重要概念 1. cluster cluster是 计算.存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用. 2.master master是cluster的大脑,他的主要职责是调度,即决 ...