首页 > 系统相关 >CentOS7搭建简单的邮件服务器_______亲测OK

CentOS7搭建简单的邮件服务器_______亲测OK

时间:2023-07-06 16:26:09浏览次数:35  
标签:info OK postfix telnet CentOS7 dovecot 服务器 _______ 邮件

邮件服务器

概述

邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。
本文会搭建收、发两个服务器,并用邮件客户端(Foxmail)做测试。

协议

协议就是定义规则,这里是邮件协议,定义邮件收发的规则,了解规则有助于理解软件的配置文件。
邮件发送协议 SMTP(Simple Mail Transfer Protocol),打开端口 25。
邮件收取协议 POP,打开端口 110;还有个常用邮件收取协议 IMOP,打开端口 143。

服务软件

Postfix
Postfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器。

上面说的邮件客户端将邮件扔给它,由它对邮件进行转发,至于怎么转发,SMTP 协议制定了规则,而 Postfix 负责具体事情,我们只需要修改 Postfix 配置文件要求它按照我们的想法去做。

Dovecot
Dovecot 实现了 POP 和 IMOP 协议,也叫做邮件收取服务器。如果只搭建了 Postfix 而没有它,不好意思,你是收不到邮件的。

Sasl
Sasl登陆验证服务,在下面的介绍可以看到 Postfix 作为邮件发送服务器,不能无限制的转发任意邮件,应当只转发它信任的发件人发送的邮件,这一点体现在 Postfix 的配置文件要配置它认为安全的主机(mynetworks 参数)。但这样会显得很麻烦,Sasl 通过其它方式也可以帮助 Postfix 完成信任邮件的认证。

设置域名(我的服务器局域网IP是172.18.50.200,我未设置/etc/hostname)

mail.52zt.info用A记录解析到邮件服务器IP(后面的各个客户端配置的域名都写这个A记录的),再把52zt.info用MX记录解析到mail.52zt.info(这个是当遇到***@52zt.info时会解析到mail.52zt.info)。
测试端口telnet命令也要用mail.52zt.info,不能用mx记录的52zt.info(用这个会解析到A记录解析的52zt.info)。

安装软件

安装软件postfix、dovecot、cyrus-sasl

yum -y install postfix dovecot  cyrus-sasl

配置软件

配置postfix

vi /etc/postfix/main.cf
#修改以下配置,注意下面的变量不要重复,如果发现与原来的变量重名,那就将原来的变量给注释掉
#邮件服务器的主机名
myhostname = mail.52zt.info
#邮件域,@后面的域名
mydomain = 52zt.info
#往外发邮件的邮件域
myorigin = $mydomain
#监听的网卡,必须监听all
inet_interfaces = all
inet_protocols = all
#服务的对象
mydestination = $myhostname,$mydomain
#邮件存放的目录,这样配置
home_mailbox = Maildir/

#新添加以下配置
#--------自定义(下面可以复制粘贴到文件最后面,用于设置服务器验为主,第一行设置发送附件大小)
#message_size_limit = 100000
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  • smtpd_sasl_auth_enable = yes //开启认证
  • smtpd_sasl_security_options = noanonymous //不允许匿名发信
  • mynetworks = 127.0.0.0/8//允许的网段,如果增加本机所在网段就会出现允许不验证也能向外域发信
  • smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  • 允许本地域以及认证成功的发信,拒绝认证失败的发信

# 邮箱投递方式有两种:一种是Mailbox方式,即同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下文件名与用户名相同(Postfix默认使用);第二种是Maildir方式,即使用目录结构来存储用户的邮件内容每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。Maildir方式的存取速度和效率要好一些对于管理邮件内容页更加方便。

1.请将home_mailbox配置为Maildir方式,否则Foxmail一个邮件也收不到
2.请将inet_interfaces配置为all,必须监听所有网卡,否则在邮件服务器(假设邮件服务器IP为172.18.50.200)以外的另一个主机中 telnet 172.18.50.200 25 会连接失败

检查并启动postfix

postfix check  #修改保存后检查配置文件是否有错
systemctl start postfix  #开启postfix服务,CentOS6用service postfix start
systemctl enable postfix  #设置postfix服务开机启动,CentOS6用chkconfig postfix on

配置dovecot

vi /etc/dovecot/dovecot.conf
#修改以下配置
protocols = imap pop3 lmtp
listen = *, ::

#新添加以下配置
#-----------自定义------------
!include conf.d/10-auth.conf

ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir

启动dovecot

systemctl start dovecot    #CentOS6用service dovecot start
systemctl enable dovecot    #CentOS6用chkconfig dovecot on

配置cyrus-sasl

vi /etc/sasl2/smtpd.conf    #如果是空文件,需要自己添加
pwcheck_method: saslauthd
mech_list: plain login
log_level:3
vi /etc/sysconfig/saslauthd  #修改下面配置项(本地用户认证)
MECH=shadow

启动

systemctl start saslauthd     #CentOS6用service saslauthd start
systemctl enable saslauthd    #CentOS6用chkconfig saslauthd on

添加用户

添加用户,并将密码设为123456

 useradd  autumn
 echo  123456 | passwd --stdin autumn

测试

yum -y install telnet-server telnet    #安装telnet客户端

测试发送

[root@mail ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.52zt.info ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:qy***@foxmail.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:这是主题
this is test mail
.
250 2.0.0 Ok: queued as 6224C10263A

登录邮箱

[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user autumn
+OK
pass 密码
+OK Logged in.


list #列表查看邮件
retr 1 #读取编号为1的邮件
quit #退出邮箱

用mailx测试

安装

yum  install  mailx -y

使用mailx发送邮件

echo '测试邮件内容' | mail -s '测试主题!' qy***@foxmail.com

邮箱客户端配置

Outlook配置

收邮件延迟较高,不推荐使用

如果出现

服务器错误: '554 5.7.1 Relay access denied'

1,打开outlook,点击 “文件”“信息”bai,进入 “账户设置”。
2,双击账户,进入更改账户。
3,点击 “其他设置”,选择发送服务器选项卡,勾选我的发送服务器要求验证(如果忘记勾选,只能收到邮件却不能发送邮件)

Foxmail配置

选中设置->账号->定时收取邮件,设置好每隔多少分钟拉取邮件.推荐使用Foxmail.

出现问题

在起好了服务,开放了防火墙端口,设置了安全组的情况下。telnet localhost 25端口通,telnet 域名 25不通,是因为服务监听ip的问题

vi /etc/postfix/main.cf

inet_interfaces=localhost 注释掉这段,上面写了all,没注意这里还有个localhost

 

标签:info,OK,postfix,telnet,CentOS7,dovecot,服务器,_______,邮件
From: https://www.cnblogs.com/LiuYanYGZ/p/17532487.html

相关文章

  • yolov5中的图片自适应缩放
    自适应图片缩放-针对不同的目标检测算法而言,我们通常需要执行图片缩放操作,即将原始的输入图片缩放到一个固定的尺寸,再将其送入检测网络中。YOLO系列算法中常用的尺寸包括416*416,608*608等尺寸。原始的缩放方法存在着一些问题,因为在实际的使用中的很多图片的长宽比不同,所以......
  • 第二周第五天进度总结
    2023年7月6日,今天我Java基础学到了P27-两只老虎案例,Javaweb学到了P18-HTML表单标签(四)。今天也是做完了任务,我额外抽出一个半小时教妹妹学会100以内的加减法,只能说还得教,不熟练。读物看到53页了,天梯赛也做了点。在家还是挺无聊的,天气太热,不好出去玩。......
  • ES6 的 新特性 1 let,const
    Let,Const,Var可以放一起说这三个都是JS中用来声明变量的关键字。主要的区别是1.作用域Var声明的变量的作用域是当前的执行上下文,也就是说,如果在函数外部声明,则是全局变量,如果是函数内部声明,则是整个函数块的变量。Let声明的变量的作用域则是当前的代码块,也就是说可以像var一......
  • 前端使用protobuf进行传参
    一.proto的理解1.以.proto结尾的文件是protobuf文件,且.proto是一种传参规则的定义。2.常用的请求传参方式是json或xml,因为在大多数的语言中这两种轻量型语言都能被其他语言识别到(java、python、javascript、c++等等)。proto作为区别于前两者且类似于前两者的语言:*它是一种语言......
  • OmniPlan Pro-mac项目规划管理软件
    OmniPlanPro是一款专业的Mac项目规划管理软件,它提供了丰富的功能和工具,帮助用户有效地规划、跟踪和管理项目。→→↓↓载OmniPlanPro 首先,OmniPlanPro具有直观易用的界面,使用户能够快速创建项目计划并设置任务。通过拖放和调整任务依赖关系,您可以轻松定义项目的工作流程......
  • Mac使用docker安装Doris
    一、编译源码(1)拉取编译镜像dockerpullapache/incubator-doris:build-env-1.2(2)Mac电脑上拉取源码gitclonehttps://github.com/apache/incubator-doris.git切换到指定分支gitfetchoriginbranch-0.12:branch-0.12gitcheckout branch-0.12(3)建议使用Docker挂载Ma......
  • 旋转Treap树
    #include<bits/stdc++.h>usingnamespacestd;constintM=1e6+10;intcnt=0;//cnt记录当前节点个数,最新一个节点即t[cnt]introot=0;//root是整棵树的树根,初始为空树所以root初始化=0intn;//n表示操作次数structNode{ intls,rs;//左右儿子 intval,pr......
  • vue刷新页面时保持当前分页不变(使用本地存储保存页码)
    this.currentPage=1原本的代码是在页面构造时直接传入第一页的页码使得页面去读取第一页应有的数据。 解决思路:设置一个变量,用于保存每一次刷新前的页面页码数,页面构造函数里进行判断如果这个变量为空,那么说明是第一次加载页面,页面读取第一页数据。在需要刷新前将当前页码保......
  • 30.使用锚点链接导致url发生改变,一旦刷新页面就会导致找不到页面的情况?
     步骤一:将原来锚链接中href="#id1"去掉,增加点击事件@click="toTopic('#id'+index)"<av-for="(tag,index)in30":key="index"@click="toTopic('#t'+index)"><el-tagtype="info"class......
  • Live Home 3D Pro Mac家装设计工具
    LiveHome3DPro是一款功能强大的Mac家装设计工具,它提供了丰富的工具和功能,使用户能够轻松创建逼真的室设计。→→↓↓载LiveHome3DPromac版 首先,LiveHome3DPro具有直观易用的界面。无论您是专业的建筑师还是家庭用户,都可以在不需要任何专业技术的情况下,快速创建自......