博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Postfix与Dovecot部署邮件系统
阅读量:7058 次
发布时间:2019-06-28

本文共 4655 字,大约阅读时间需要 15 分钟。

一些基本概念解释:

三种邮件协议:

SMTP 简单邮件传输协议,用于发送和中转发出的电子邮件,占用服务器的25/TCP端口号。

POP3 第三版邮局协议,用于把邮件存储到本地主机,占用服务器的110/TCP端口号。

IMAP4 第四版互联网信息访问协议,用于在本地主机上访问邮件,占用服务器的143/TCP端口号。

邮件收发服务程序:

Postfix 服务程序:基于SMTP协议,提供发件服务功能。

Dovecot 服务程序:基于POP3协议,提供收件服务功能。

MUA-MTA-MDA:

MUA 用户代理(Mail User Agent):为用户收发邮件的服务器

MDA 邮件投递代理(Mail Delivery Agent):用于保存用户邮件的服务器

MTA 邮件传输代理(Mail Transfer Agent):转发不同的邮件供应商之间的邮件

===========

测试环境:

物理机:windows 10

虚拟机软件:oracle VirtualBox

操作系统:RHEL7.4

在安装postfix服务之前,先参考前一篇随笔《》,在服务器上搭建完成DNS服务,并且域名解析正常。

安装配置postfix服务程序:

1、安装postfix服务程序

# yum install postfix

2、配置poftfix服务程序

vi 编辑主配置文件/etc/postfix/main.cf,修改以下主要参数:

myhostname = mail.rusky.com    //邮局系统的主机名。

mydomain = rusky.com    //邮局系统的域名。
myorigin = $mydomain    //从本机寄出邮件的域名名称。(可以不写变量,写主机名也可以)
inet_interfaces    = all    //监听所有网卡接口。
mydestination = $myhostname,$mydomain    //可接收邮件的主机名或域名。
mynetworks    //设置可转发那些主机的邮件。默认。
relay_domains    //设置可转发那些网域的邮件。默认。

#mail_spool_directory = /var/mail 

#mail_spool_directory = /var/spool/mail  把这两行注释掉

home_mailbox = Maildir/   取消注释,让用户的邮件保存到自己家目录下的Maildir目录下。

3、创建电子邮件系统的登录帐号

Postfix与Vsftpd服务程序一样都可以调用本地系统帐号和密码,因此在本地进行常规帐号创建即可,最后再把配置妥当的postfix服务重启,加入到开机启动项即可。

# useradd  testuser01

# echo "testuser01" | passwd --stdin testuser01
Changing password for user testuser01.
passwd: all authentication tokens updated successfully.
# systemctl restart postfix
# systemctl enable postfix

 

4、配置Dovecot服务程序

安装dovecot:

# yum install dovecot

修改主配置文件:

# vi /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtpdisable_plaintext_auth = no  #添加这一行(允许客户使用明文进行密码验证,这是由于Dovecot服务程序为了保证电子邮件系统安全而默认强制客户必须使用加密方式进行登陆,而当前由于咱们没有加密系统的支持,因此需要添加参数来允许客户的明文登陆行为。)

#login_trusted_networks =

(设置允许登陆的网段地址,也就是说可以在这里限制只有来自于某个网段的客户才能使用电子邮件系统,如果想允许所有人都能来使用,可以不用修改本条参数)

修改ssl.conf配置文件:

# vi /etc/dovecot/conf.d/10-ssl.conf 

ssl = no   不使用ssl方式不验证

配置邮件路径与存储路径:

# vi /etc/dovecot/conf.d/10-mail.conf

mail_location = mail_location = maildir:~/Maildir   //取消该行注释即可。(因为我们修改了postfix的主配置文件home_mailbox = Maildir/,即用户的新邮件会放到/home/user/Maildir目录下,所以dovecot也得修改mail_location目录 )

然后切换到该用户身份后在家目录中建立用于保存邮件的目录,记得重启一下服务并加入到开机启动项就完成了对Dovecot服务程序的全部配置部署步骤:

systemctl restart dovecot

systemctl enable dovecot

Maildir目录可以手动创建,或是使用root帐号给用户发一封邮件后,会自动创建该目录。

[root@rhel1 ~]# cd /home/testuser01/[root@rhel1 testuser01]# mkdir Maildir[root@rhel1 testuser01]# lltotal 0drwxr-xr-x. 2 root root 6 Oct  2 17:13 Maildir

生产中一般都是使用管理员帐号给新系统帐号发一封邮件,自动创建Maildir目录。比如公司新员工入职后,都会收到一封欢迎的邮件。其实也是为了创建Maildir目录。

[root@rhel1 ~]# useradd lxj[root@rhel1 ~]# passwd lxjChanging password for user lxj.New password: BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematicRetype new password: passwd: all authentication tokens updated successfully.[root@rhel1 ~]# cd /home/lxj/[root@rhel1 lxj]# lltotal 0[root@rhel1 lxj]# mail lxj    --给lxj发封邮件后,会自动创建Maidir目录。Subject: lxjlxjlxj.EOT[root@rhel1 lxj]# lltotal 0drwx------. 5 lxj lxj 39 Oct  2 17:08 Maildir[root@rhel1 lxj]#

现在用户的邮件是在/home/user/Mail/new目录下:

[root@rhel1 lxj]# cd Maildir/[root@rhel1 Maildir]# lltotal 0drwx------. 2 lxj lxj  6 Oct  2 17:08 curdrwx------. 2 lxj lxj 61 Oct  2 17:08 newdrwx------. 2 lxj lxj  6 Oct  2 17:08 tmp[root@rhel1 Maildir]# cd new/[root@rhel1 new]# lltotal 4-rw-------. 1 lxj lxj 481 Oct  2 17:08 1506935338.Vfd00I2031c61M838561.rhel1.rusky.com[root@rhel1 new]# cat 1506935338.Vfd00I2031c61M838561.rhel1.rusky.comReturn-Path: 
X-Original-To: lxjDelivered-To: lxj@rusky.comReceived: by mail.rusky.com (Postfix, from userid 0) id C18C931BF38D; Mon, 2 Oct 2017 17:08:58 +0800 (CST)Date: Mon, 02 Oct 2017 17:08:58 +0800To: lxj@rusky.comSubject: lxjUser-Agent: Heirloom mailx 12.5 7/5/10MIME-Version: 1.0Content-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bitMessage-Id: <20171002090858.C18C931BF38D@mail.rusky.com>From: root@rusky.com (root)lxjlxj

使用邮件客户端收发邮件:

 

如果是在Linux系统中,可以使用 thunderbird 客户端来收发电子邮件。

还有一个小知识点:按组群发邮件

创建测试帐号:

 

[root@rhel1 home]# useradd employee1[root@rhel1 home]# useradd employee2[root@rhel1 home]# useradd employee3[root@rhel1 home]# echo "123456" | passwd --stdin employee1Changing password for user employee1.passwd: all authentication tokens updated successfully.[root@rhel1 home]# echo "123456" | passwd --stdin employee2Changing password for user employee2.passwd: all authentication tokens updated successfully.[root@rhel1 home]# echo "123456" | passwd --stdin employee3

 

修改配置文件:

# vi /etc/postfix/main.cfalias_database = hash:/etc/aliases # vi /etc/aliases     添加如下内容

  admin: lxj,testuser01@rusky.com

  testgroup: employee1,employee2,employee3@rusky.com

注意aliases文件里的格式。

组名:邮件全名或帐号名

可以新建多个组。使用newalias命令或重启postfix使用配置生效。

[root@rhel1 ~]# newaliases

[root@rhel1 ~]# systemctl restart postfix.service

 测试:

转载地址:http://nerol.baihongyu.com/

你可能感兴趣的文章
TFLearn 在给定模型精度时候提前终止训练
查看>>
lua一些特殊函数说明
查看>>
warning: ignoring option PermSize=256m; support was removed in 8.0
查看>>
java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写
查看>>
Java基础-Java数据类型
查看>>
Android调试工具adb的高逼格使用方式
查看>>
SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)
查看>>
layui利用jQuery设置下拉列表的值
查看>>
sql server 查询ntext字段长度
查看>>
岭回归与Lasso回归
查看>>
sql总结
查看>>
Nancy简单实战之NancyMusicStore(六):写在最后
查看>>
【阅读推荐】改变你思维模式的书单
查看>>
graylog 市场
查看>>
windows配置Python多版本共存
查看>>
【二】 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数。...
查看>>
centos7修改系统时间、时区
查看>>
MySQL不带where条件的UPDATE和DELETE 限制操作说明
查看>>
AIX系统日志
查看>>
搭建rsync服务并同步重要数据
查看>>