微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Centos7+Postfix+Dovecot实现邮件收发

Centos7+Postfix+Dovecot实现邮件收发

说到邮件系统,现在有很多,比如微软的Exchange、Office365、IBM Lotus、主流的第三方提供的邮件系统。当然这些都是收费的,如果对于小环境内使用的话,可以使用linux下部署的Postfix+Dovecot实现邮件的收发等,当然在Linux下 有很多服务可以实现邮件的收发,今天我们主要介绍的是Centos7+Postfix+Dovecot实现邮件收发,具体见下:

首先是安装好Centos7,安装好后,我们需要对一些系统的设置进行配置;

1.selinux关闭、sed�CI‘s/enforcing/disabled/g’/etc/selinux/config
2.firewall-cmd�Cadd-port=’110/tcp’�Cpermanentfirewall-cmd�Cadd-port=’25/tcp’�Cpermanent

准备好后,首先是查看系统版本

cat/etc/redhat-release

clip_image001

Centos7是自带postfix服务的,所以我们不用单独安装了;

rpm�Cqa|greppostfix

clip_image002

我们发现系统自带了postfix服务,所以我们就不用安装了

postfix 2.10.1-6.el7.x86_64

接下来就是说说postfix的基本配置,当然postfix的配置非常多,我们就不多介绍了,先介绍一下发送邮件的基本配置

我们先通过取反查看认的postfix的认配置,查看那些需要修改

grep-v'^#'/etc/postfix/main.cf|grep-v'^$'

clip_image003

vim/etc/postfix/main.cf

clip_image004

myhostname=pfx.ixmsoft.com#定义主机名
mydomain=ixmsoft.com#定义域名
myorigin=$mydomain#定义组织域

clip_image005

inet_interfaces=all定义网络区域
inet_portocols=all定义协议

clip_image006

我们需要在mydestination的值后面添加$mydomain,如果不添加的话,收件人的地址会有问题,如果添加后,用户发送邮件直接会是
xx@domain.com

clip_image007

取消注释#local_recipient_maps=

clip_image008

grep-v'^#'/etc/postfix/main.cf|grep-v'^$'

修改保存退出后,我们查看反向配置

clip_image009

保存退出后,我们启动postfix服务及查看端口状态,

systemctlstartpostfix
systemenablepostfix
netstat�Canlpt

clip_image010

接下来我们安装dovecot服务,该服务主要提供pop3、imap服务

yuminstalldovecot

clip_image011

安装完成

clip_image012

接下来我们查看dovecot的配置文件

我们看见以下include可以包含的配置文件路劲,在该路劲下的*.conf文件都会生效

clip_image013

我们启用协议以下协议

protocols=imappop3lmtp
启用端口监听
listen=*,::

clip_image014

保存退出

grep-v'^#'/etc/dovecot/dovecot.conf|grep-v'^$'

clip_image015

vim/etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth=no

clip_image016

auth_mechanisms=plainlogin
!includeauth-system.conf.ext

clip_image017

保存退出

grep-v'^#'/etc/dovecot/conf.d/10-auth.conf|grep-v'^$'

clip_image018

禁用ssl认证,如下:

当然也可以不取消ssl,根据自己的环境定

vim/etc/dovecot/conf.d/10-ssl.conf
ssl=no

clip_image019

启用dovecot的日志,如下:

vim/etc/dovecot/conf.d/10-logging.conf
添加
info_log_path=/var/log/dovecot_info.log
debug_log_path=/var/log/dovecot_debug.log

clip_image020

然后启动服务

systemctlstartdovecot
systemctlenabledovecot

我们看见110、143都已经监听了

clip_image021

接下来我们创建一个测试用户

useraddzs
passwdzs

然后输入新旧密码

clip_image022

然后我们开始测试

[root@pfx~]#telnetlocalhost110
Trying::1...
Connectedtolocalhost.
Escapecharacteris'^]'.
+OKDovecotready.
userzs
+OK
pass123456
-ERR[SYS/TEMP]Internalerroroccurred.Refertoserverlogformoreinformation.
Connectionclosedbyforeignhost.

clip_image023

我们查看log

[root@pfx~]#tail-f/var/log/maillog
Dec2100:37:58pfxpostfix/postfix-script[9570]:stoppingthePostfixmailsystem
Dec2100:37:58pfxpostfix/master[9553]:terminatingonsignal15
Dec2100:38:01pfxpostfix/postfix-script[9654]:startingthePostfixmailsystem
Dec2100:38:01pfxpostfix/master[9656]:daemonstarted--version2.10.1,configuration/etc/postfix
Dec2100:38:08pfxpostfix/smtpd[9661]:warning:hostnamebogondoesnotresolvetoaddress192.168.5.20:NameorservicenotkNown
Dec2100:38:08pfxpostfix/smtpd[9661]:connectfromunkNown[192.168.5.20]
Dec2100:38:20pfxpostfix/smtpd[9661]:lostconnectionafterCONNECTfromunkNown[192.168.5.20]
Dec2100:38:20pfxpostfix/smtpd[9661]:disconnectfromunkNown[192.168.5.20]
Dec2100:55:46pfxdovecot:pop3(zs):Error:userzs:InitializationFailed:Namespace'':MailstorageautodetectionFailedwithhome=/home/zs
Dec2100:55:46pfxdovecot:pop3(zs):Error:Invalidusersettings.Refertoserverlogformoreinformation.

clip_image024

我们切换到刚才的用户

su�Czs
然后为用户zs,创建inBox目录
mkdir-p~/mail/.imap/INBox

clip_image025

然后再次尝试就可以了

[root@pfx~]#telnetlocalhost110
Trying::1...
Connectedtolocalhost.
Escapecharacteris'^]'.
+OKDovecotready.
userzs
+OK
pass123456
+OKLoggedin.

clip_image026

测试发送邮件

[root@pfx/]#telnetlocalhost25
Trying::1...
Connectedtolocalhost.
Escapecharacteris'^]'.
220mail.ixmsoft.comESMTPPostfix
mailfrom:zs@ixmsoft.com
2502.1.0Ok
rcptto:ls@ixmsoft.com
2502.1.5Ok
data
354Enddatawith<CR><LF>.<CR><LF>
thisistestmail
.
2502.0.0Ok:queuedasA702D400FC14
quit
2212.0.0Bye
Connectionclosedbyforeignhost.

clip_image027

我们查看邮件

[root@pfx/]#telnetlocalhost110
Trying::1...
Connectedtolocalhost.
Escapecharacteris'^]'.
+OKDovecotready.
userls
+OK
pass123456
+OKLoggedin.
list
+OK1messages:
1409
.

clip_image028

我们每次都需要创建目录,比较麻烦,我们可以不可以用脚本呢

设置邮件存放目录:

vim/etc/dovecot/conf.d/10-mail.conf取消以下注释
mail_location=mBox:~/mail:INBox=/var/mail/%u#指定邮件的位置

clip_image029

重启dovecot服务
systemctlrestartdovecot
修改创建用户模板文件,使用户创建时自动生成mail存放目录
vim/etc/skel/.bash_profile添加一下配置文件,
if[!-d~/mail/.imap/INBox];then
mkdir-p~/mail/.imap/INBox
fi
注:如果是复制的,最好在保存推出前,执行以下编码格式的执行
:setformat=unix
或者可以下载附件,替换当前的配置文件即可

clip_image030

保存退出后,执行一下,为其快速生效。

source.bash_profile

接下来我们需要创建测试用户,创建用户后,使用新用户登录后,会自动创建相关目录,然后就直接可以使用邮箱了;我们也可以使用outlook或者其他方式进行邮件测试,再次就不做测试;

如果想希望对外及对内邮件有来往的话,需要将服务器的110、25发布到外网,然后再外网的域名商配置MX记录解析及A记录解析,这样邮件才能回来。

我们最后使用foxmail进行内网测试了;

我们配置两个账户,zs、ls用户进行邮件收发测试:

wKiom1haWDGSAxF8AABfPfIO6Lo009.jpg-wh_50

wKioL1haWDGhshNFAAAbVwKhwPQ287.jpg-wh_50

wKiom1haWDPAVCd8AADPUco5RlI259.jpg-wh_50

我们再添加一个ls的账户

wKioL1haWDPj9gBJAADh1Qv4xD4654.jpg-wh_50

使用zs给ls发邮件

wKiom1haWDThOUWuAABoIc6kynQ403.jpg-wh_50

zs收到邮件

wKioL1haWDXglw68AACDhgAy3YY150.jpg-wh_50

ls也收到邮件

wKioL1haWDWTLkTqAACOvBCbkC8438.jpg-wh_50

原文地址:https://www.jb51.cc/centos/379365.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。