ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Centos 7 搭建postfix邮件服务器

Centos 7 搭建postfix邮件服务器

原创 Linux操作系统 作者:lhrbest 时间:2020-09-13 13:55:14 0 删除 编辑


Centos 7 搭建postfix邮件服务器

--- Linux 7 搭建邮件服务器:端口25、110、143
vi /etc/hosts
172.17.0.3  lhrcentos76  mail.lhr.com
-- 安装配置postfix
yum install -y postfix
vim /etc/postfix/main.cf
# 修改内容:
# 75行: 取消注释,设置hostname 
myhostname = mail.lhr.com
# 83行: 取消注释,设置域名 
mydomain = lhr.com 
# 99行: 取消注释 
myorigin = $mydomain 
# 116行: 默认是localhost,我们需要修改成all
inet_interfaces = all 
# 119行: 推荐ipv4,如果支持ipv6,则可以为all 
inet_protocols = ipv4 
# 164行: 添加 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
# 264行: 取消注释,指定内网和本地的IP地址范围 
mynetworks = 172.0.0.0/8
# 419行: 取消注释,邮件保存目录
home_mailbox = Maildir/ 
# 571行: 添加 
smtpd_banner = $myhostname ESMTP 
# 添加到最后 
# 规定邮件最大尺寸为10M 
message_size_limit = 10485760 
# 规定收件箱最大容量为1G 
mailbox_size_limit = 1073741824 
# SMTP认证 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_local_domain = $myhostname 
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
开启dovecot服务并添加到系统自启
systemctl restart postfix
systemctl enable postfix
2、安装并配置dovecot
yum install -y dovecot 
vim /etc/dovecot/dovecot.conf 
# 更改内容:
# 30行: 如果不使用IPv6,请修改为* 
listen = *
#第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数
login_trusted_networks = 192.168.10.0/24更改内容
vim /etc/dovecot/conf.d/10-auth.conf 
# 更改内容:
# 9行: 取消注释并修改 disable_plaintext_auth = no 
# 97行: 添加 auth_mechanisms = plain login
vim /etc/dovecot/conf.d/10-mail.conf
# 更改内容:
# 30行: 取消注释并添加 mail_location = maildir:~/Maildir
vim /etc/dovecot/conf.d/10-master.conf
# 更改内容:
# 88-90行: 取消注释并添加 # Postfix smtp验证 
unix_listener /var/spool/postfix/private/auth { 
mode = 0666 
user = postfix
group = postfix
}
注意:如果我们没有使用ssl的话需要进行下面的操作。使用了则不需要。
vim /etc/dovecot/conf.d/10-ssl.conf 
# 更改内容:
# 8行: 将ssl的值修改为 ssl = no
开启dovecot服务并添加到系统自启
systemctl restart dovecot
systemctl enable dovecot
3、创建用户
useradd admin
echo "admin:lhr" | chpasswd
-- 发邮件测试
[root@lhroggdirector /]# telnet mail.lhr.com 25
Trying 172.17.0.2...
Connected to mail.lhr.com.
Escape character is '^]'.
220 mail.lhr.com ESMTP
helo mail.lhr.com
250 mail.lhr.com
mail from: lhr@lhr.com
250 2.1.0 Ok
rcpt to: lhrbest@qq.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
helo:
this is a test
.
250 2.0.0 Ok: queued as 2935C2407FC
quit
221 2.0.0 Bye
Connection closed by foreign host.





一、邮件系统的简单介绍

  • 电子邮件系统基于邮件协议来完成电子邮件的传输,常见的邮件协议有下面这些。
  • 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
  • 邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。
  • Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。
  • 一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件了。

二、准备工作

系统:CentOS 7
软件:postfix,dovecot
域名:拥有自己的域名

三、搭建准备

修改主机名

# 语法
hostnamectl  set-hostname   mail.域名
# 例:
hostnamectl  set-hostname   mail.abc.com
vi /etc/hosts
172.17.0.3  lhrcentos76  mail.lhr.com

四、邮箱软件安装配置

安装并配置postfix

  1. 软件说明

postfix是提供发件服务的(注意:修改配置文件需备份,以下步骤未包含备份。)
postfix服务程序主配置文件中的重要参数。

参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件
  1. 安装postfix
yum install postfix


vim /etc/postfix/main.cf
# 修改内容:
# 75行: 取消注释,设置hostname 
myhostname = mail.abc.com 
# 83行: 取消注释,设置域名 
mydomain = abc.com 
# 99行: 取消注释 
myorigin = $mydomain 
# 116行: 默认是localhost,我们需要修改成all
inet_interfaces = all 
# 119行: 推荐ipv4,如果支持ipv6,则可以为all 
inet_protocols = ipv4 
# 164行: 添加 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
# 264行: 取消注释,指定内网和本地的IP地址范围 
mynetworks = 127.0.0.0/8
# 419行: 取消注释,邮件保存目录
 home_mailbox = Maildir/ 
# 571行: 添加 
smtpd_banner = $myhostname ESMTP 
# 添加到最后 
# 规定邮件最大尺寸为10M 
message_size_limit = 10485760 
# 规定收件箱最大容量为1G 
mailbox_size_limit = 1073741824 
# SMTP认证 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_local_domain = $myhostname 
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject


开启postfix服务并添加到系统自启

systemctl  restart  postfix
systemctl  enable  postfix

安装并配置dovecot


安装dovecot

yum install dovecot


编辑文件dovecot.conf

vim /etc/dovecot/dovecot.conf 
# 更改内容:
# 26行: 如果不使用IPv6,请修改为* 
listen = *
#在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数
login_trusted_networks = 192.168.10.0/24更改内容

编辑文件10-auth.conf

vim /etc/dovecot/conf.d/10-auth.conf 
# 更改内容:
# 9行: 取消注释并修改 disable_plaintext_auth = no 
# 97行: 添加 auth_mechanisms = plain login

编辑文件10-mail.conf

vim /etc/dovecot/conf.d/10-mail.conf
# 更改内容:
# 30行: 取消注释并添加 mail_location = maildir:~/Maildir

编辑文件10-master.conf

vim /etc/dovecot/conf.d/10-master.conf
# 更改内容:
# 88-90行: 取消注释并添加 # Postfix smtp验证 
unix_listener /var/spool/postfix/private/auth { 
mode = 0666 
user = postfix
group = postfix
}

注意:如果我们没有使用ssl的话需要进行下面的操作。使用了则不需要。

编辑文件10-ssl.conf

vim /etc/dovecot/conf.d/10-ssl.conf 
# 更改内容:
# 8行: 将ssl的值修改为 ssl = no
  1. 开启dovecot服务并添加到系统自启
systemctl restart dovecot
systemctl enable dovecot

五、收发邮件测试

  1. 创建用户
useradd admin
echo "admin:lhr" | chpasswd
  1. 使用FOXMAIL登陆
    在这里插入图片描述

1中我们需要选择我们之前开放端口对应的服务器类型。

2中 我们只需要填入我们的用户名,例如admin,root

3中 我们收件和发件都填入我们的mail.域名。例 mail.abc.com

4 中 我们如果使用了ssl的话就需要勾选,如果没有使用的话就不需要勾选

注意事项

我们邮件服务器在设定mynetworks 这个值的时候,一行不要设置all,因为会有很多服务器会将你的服务器作为中转邮件服务器,最终导致的你的邮件服务器发送的邮件被qq,163,gamil,这些邮件服务商标记为垃圾邮件。

当某天我们检查我们的mail日志(/var/log/maillog)时发现很多邮件发送,而且邮件不是我们自己产生的话,那么我们的邮件服务器是出了问题的

这时我们服务器一定有很多邮件堆积,然后自己邮件会发不出去。

我们需要做的操作:检查

du -sh /var/spool/postfix/*

查看目录下的defer和deferred的目录大小,通过postqueue –p来查看队列的邮件,通过postsuper -d ALL 删除所有的队列邮件。



在本机测试一下发信功能是否正常。命令行中的测试工作可以通过telnet命令进行。例如:可以连接到邮件服务器的25端口,并输入相关的SMTP命令, 以邮件账户yxz@topsecedu.com作为发件人, 给cqq@topsecedu.com发送一封测试邮件

-- 发邮件测试
[root@lhroggdirector /]# telnet mail.lhr.com 25
Trying 172.17.0.2...
Connected to mail.lhr.com.
Escape character is '^]'.
220 mail.lhr.com ESMTP
helo mail.lhr.com
250 mail.lhr.com
mail from: lhr@lhr.com
250 2.1.0 Ok
rcpt to: lhrbest@qq.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
helo:
this is a test
.
250 2.0.0 Ok: queued as 2935C2407FC
quit
221 2.0.0 Bye
Connection closed by foreign host.






About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在个人微 信公众号( )上有同步更新

● QQ群号: 230161599 、618766405,微信群私聊

● 个人QQ号(646634621),微 信号(db_bao),注明添加缘由

● 于 2020年9月 在西安完成

● 最新修改时间:2020年9月

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店

● 小麦苗出版的数据库类丛书: http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用、DBA学习班http://blog.itpub.net/26736162/viewspace-2148098/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

........................................................................................................................

请扫描下面的二维码来关注小麦苗的微 信公众号( )及QQ群(230161599、618766405)、添加小麦苗微 信(db_bao), 学习最实用的数据库技术。

........................................................................................................................

 

 



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2719180/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
【QQ:646634621】【微信:db_bao】【微信公众号:DB宝】【11g、12c OCM】【QQ群:230161599、618766405】【《数据库笔试面试宝典》作者】【OCP、OCM、高可用(RAC+DG+OGG)、MySQL培训班已开讲,只讲实用内容】

注册时间:2012-09-23

  • 博文量
    1607
  • 访问量
    9357318