一、配置postfix

首先,我们关闭防火墙

systemctl disable iptables

接下来我们安装postfix

yum install postfix

然后我们修改下postfix的配置文件

[root@mail~] # vim /etc/postfix/main.cf
//修改第76行的邮局主机名。
myhostname = mail.ijoshua.cn
//修改第83行的邮局域名。
mydomain = ijoshua.cn
//修改第99行的寄出邮件域名,$mydomain的值已在上面定义。
myorigin = $mydomain
//修改第116行的监听网卡。
inet_interfaces = all
//修改第164行的可接收邮件的主机名和域名。
mydestination = $myhostname, $mydomain

然后我们创建一个邮箱账号

[root@mail~] # useradd boss
[root@mail~] # echo "123456" | passwd --stdin boss
Changing password for user boss. passwd: all authentication tokens updated successfully.

启动postfix服务

[root@mail~] # systemctl restart postfix
[root@mail~] # systemctl enable postfix
ln -s '/usr/lib/systemd/system/postfix.service' '/etc/systemd/system/multi-user.target.wants/postfix.service'

注意:在这里 如果你以前安装过,但是失败了,会提示你“/etc/systemd/system/multi-user.target.wants/postfix.service”文件已存在,可以使用

rm -f /etc/systemd/system/multi-user.target.wants/postfix.service

将文件删除,然后再执行

然后我们来测试使用postfix发送一封邮件

这里需要注意的是 ,如果你的服务器是阿里云的服务器 这个时候是收不到邮件的……,解决办法会在后面给出(当然也就是不用25端口……)

二、配置dovecot

首先,我们安装下dovecot

[root@mail~] # yum install dovecot -y
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
Installing: dovecot x86_64 1:2.2.10-4.el7 rhel7 3.2 M
Installing for dependencies: clucene-core x86_64 2.3.3.4-11.el7 rhel7 528 k
………………省略部分安装过程………………
Complete!

然后,我们修改一下配置文件

[root@mail~] # vim /etc/dovecot/dovecot.conf
//修改第24行的支持邮局协议。
protocols = imap pop3 lmtp
//然后追加允许明文认证(25行)。
disable_plaintext_auth = no
//修改第48行的允许登陆网段地址,全部允许即为(0.0.0.0/0)。
login_trusted_networks = 192.168.0.0/24

接下来,我们配置一下邮件的格式和存储路径

[root@mail~] # vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u

然后,我们创建邮件的存储目录(这步决定你是否能收到邮件哦)

[root@mail~] # su - boss
Last login: Sat Aug 15 16:15:58 CST 2015 on pts/1
[boss@mail ~]$ mkdir -p mail/.imap/INBOX

最后,我们启动dovecot

[root@mail~] # systemctl restart dovecot
[root@mail~] # systemctl enable dovecot
ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'

注意:这里的最后一步 和postfix 的最后一步可以有同样的问题 ,解决方式也一样

如果诸位小伙伴使用的服务器不是阿里云的话,没有域名的话 推荐使用freenom.可以申请免费的域名(玩儿玩儿还是可以的)

freenom需要注意的是 可以使用谷歌账号登录,当然 需要翻墙。

DNS解析

注意:最上面的那个空白的,是输入“域名”(这个域名不是指文字“域名”,是你申请的免费域名),然后第三个的MAIL 输入的是“mail.域名”。

这里配置完之后,本地ping 一下,一般需要一小会就能配置完成,所以刚开始ping不通的小伙伴可以稍微等一等。如果能ping通了,那么就可以使用了。可以使用Foxmail

还有一点非常重要的就是,你服务器上的端口一定要开  IMAP 是143端口 POP3是110端口 SMTP是25端口

不出什么问题的话(不是阿里云服务器) ,这就可以发送和接收邮件啦。

如果使用foxmail 连接不上呢。可以查看下日志 /var/log/maillog 这个里面会记载你为啥没登录上。

三、SSL

本来其乐融融的使用这邮件服务器,这个时候,一个噩耗传来了。。

connect to mx3.qq.com[183.57.48.35]:25: Connection timed out
C663F409F6: to=<xxxxxxxx@qq.com>, relay=none, delay=64923, delays=64833/0.01/90/0, dsn=4.4.1, status=deferred (connect to mx2.qq.com[14.17.41.170]:25: Connection timed out)

发现连接超时,诶呀这就尴尬了,不过莫慌。、

阿里云服务器的小伙伴看这里~,报这个错误的小伙伴也看这里~

这个问题出现的原因呢,是服务器提供商把我们的25端口给封锁了,阿里云服务器的小伙伴可以去申请,不过应该是不给解封。。。。。,那么既然我们没有办法使用25端口了,我们就换一个高端一点的端口,也就是163、腾讯、网易都在用的端口,就是SSL加密后的端口

POP3 是 995 端口、SMTP是465端口 、IMAP 是993

我们都知道SSL 是需要签名证书的。那么接下来,我们来操作起来。

1、生成自己的签名SSL证书

[root@mail ~]# cd /etc/pki/tls/certs# 生成私钥
[root@mail certs]# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
..............................................................+++
.........+++
e is 65537 (0x010001)
Enter pass phrase:    #输入密码
Verifying - Enter pass phrase:  #重复输入密码#下面这个步骤是删除server.key中的密码
[root@mail certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:  #输入刚才设置的密码
writing RSA key# 生成CSR(证书签名请求)
[root@mail certs]# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN   #国家简称
State or Province Name (full name) []:Beijing   #省
Locality Name (eg, city) [Default City]:Beijing  #城市
Organization Name (eg, company) [Default Company Ltd]:OPS  #公司名
Organizational Unit Name (eg, section) []:OPS   #部门名
Common Name (eg, your name or your server's hostname) []:mail.opsky.top
Email Address []:admin@opsky.top  Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  #直接按Enter
An optional company name []:  #直接按Enter#生成自签名证书
[root@mail certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=C = CN, ST = Beijing, L = Beijing, O = OPS, OU = OPS, CN = mail.opsky.top, emailAddress = admin@opsky.top
Getting Private key#设置权限
[root@mail certs]# chmod 400 server.*

证书生成完事之后,我们就可以是用server.crt和server.key加密通信的数据啦

然后,我们回来给postfix添加配置

vi /etc/postfix/main.cf

将下面的内容添加至文件最后

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

然后修改另一个文件

vi /etc/postfix/master.cf

找到下面的这两行,肯定有(别说找不到&……仔细找一哈),然后接开注释

smtps       inet   n       -       n       -       -       smtpd-o smtpd_tls_wrappermode=yes

然后,我们修改dovecot的配置

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

修改其中的

# 第6行:
ssl = yes
# 第12,13行:
ssl_cert = </etc/pki/tls/certs/server.crt
ssl_key = </etc/pki/tls/certs/server.key

配置完成后,重启postfix 和dovecot

systemctl restart postfix
systemctl restart dovecot

如果你的防火墙没关,那么添加如下设置(如果关了 就忽略奥)

[root@mail ~]# iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
[root@mail ~]# iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
[root@mail ~]# iptables -I INPUT 7 -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT

然后,我们就改完啦,我们再用foxmail登录一下,。发现……还是没有登录上,日志中报了这个错误

Error: SSL private key file is password protected, but password isn't givenFatal: Couldn't parse private ssl_key: error:0906A068:PEM routines:PEM_do_header:bad password read

诶我这小暴脾气,就冲着屏幕一顿毒打(然后默默的抚摸显示器,工作要紧工作要紧。。。。)

那么解决办法呢~,就是下面的办法,执行下面的命令

killall dovecot

然后执行下面的命令后,输入一下你SSL证书的密码

dovecot -p

完成之后,你再去登录,就可以正常登录啦,也可以正常收发邮件啦。

如果有什么疑问,或者指教,欢迎加QQ:1318623133

这里参考了几篇大佬的博客:

postfix+dovecot:https://www.cnblogs.com/zydev/p/6307482.html

生成SSL证书:https://blog.csdn.net/shile/article/details/78437258

配置postfix和dovecot启用SSL加密:https://blog.csdn.net/shile/article/details/78442093

-----------------------------------------   I`am Joshua,may god bless you

postfix+dovecot+SSL 搭建邮件服务器相关推荐

  1. 【验】Postfix+Dovecot+MySQL搭建邮件服务器

    网上有很多使用Postfix搭建邮件服务器的文章,但目前貌似没有看到较为完整的一篇.本例将尝试在Ubuntu系统中使用Postfix+Dovecot+MySQL搭建邮件服务器. 说到邮件服务器,网上有 ...

  2. LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(六)

    接上期,我们部署完了Postfix服务,下面开始部署Dovecot服务. 七.部署Dovecot服务 1.下载dovecot安装包 [root@Mail ~]# wget -c https://dov ...

  3. LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(四)

    接上期,我们已经部署完了MySQL.Apache两个服务,下面我们开始部署PHP服务. 五.部署PHP服务 1.安装PHP所必须的依赖包 [root@Mail ~]# yum -y install g ...

  4. 虚拟机安装postfix服务器,CentOS 7 下搭建邮件服务器(bind+postfix+dovecot)

    CentOS 7下搭建邮件服务器 前提环境:CentOS 7虚拟机IP为192.168.43.124 主机名为mail.zxp.com 修改主机名:hostnamectl set-hostname m ...

  5. Linux-Postfix+Dovecot+Postfixadmin+Roundcubemail 搭建邮件服务器管理系统(一)

    搭建邮件服务器管理系统概述和环境信息说明 1.概述 MUA(Mail User Agent),邮件用户代理:Outlook,Foxmail. MTA(Mail Transfer Agent),邮件传输 ...

  6. RHCE(十三)用postfix搭建邮件服务器

    搭建邮件服务器 postfix 邮件系统的组成 邮件服务工作流程 三种协议 SMTP POP3 IMAP POP3 和 IMAP 区别 常用端口 mail命令 邮件群发 搭建框架 Linux系统上搭建 ...

  7. RHCE 第十一天 mail postfix dovecot SSL

    文章目录 邮件服务器工作模式 接收:POP3(端口110) IMAP(端口143) 发送:SMTP(端口25) ESMTP (端口465) 执行流程 案例一:mail 发送带附件的邮件 群发邮件 给外 ...

  8. 搭建邮件服务器 dns,搭建DNS服务器+邮件服务器

    一·搭建DNS服务器 试验要求:完成DNS的正反向解析 试验前准备: 服务器 192.168.203.201 server1.example.com 客户机 192.168.203.202 serve ...

  9. 搭建邮件服务器过程,关于服务器:搭建邮件服务器过程非常简单

    通常在Linux搭建邮件服务器是须要装置很多软件和配置文件的,所以咱们能够应用一个开源邮件服务器软件来搭建的. 筹备一台服务器与零碎 云服务器或本地虚构的服务器都能够. 服务器须要能链接网络. 装置c ...

最新文章

  1. java中将json字符串_Java中JSON字符串与java对象的互换实例详解
  2. Leetcode 739. 每日温度 (每日一题 20211014)
  3. 程序员面试题精选100题(19)-反转链表[数据结构]
  4. [Linux]F5负载均衡器
  5. 台湾RD技术谈|嘉宾郭家齊董大偉黃保翕
  6. windows 启动停止 java进程
  7. win10安装RabbitMQ
  8. css三栏布局技巧,CSS-三栏布局的常用6种方法
  9. 有图有真相——关于“视频专辑:零基础学习C语言 ”
  10. 临时笔记, 有意思的东西
  11. Xshell5 访问虚拟机Ubuntu16.04
  12. 代码管理学:域名、产品名、应用名等都不是你能决定的,要上报备案
  13. 实现用python给微信指定联系人在指定时间发送消息(仅供学习)
  14. 一些游戏用到的渲染技术
  15. 从零开始学习CANoe(四)—— 设计panel
  16. CVE-2022-28512 Fantastic Blog CMS 存在SQL注入漏洞
  17. UAT 深入指南(用户验收测试)
  18. 鲲鹏devkit(迁移 测试 性能分析) boostkit
  19. Open-set Adversarial Defense with Clean-Adversarial Mutual Learning
  20. 【系统集成项目管理】之信息系统集成(二)

热门文章

  1. Python爬取哔哩哔哩(bilibili)视频
  2. STM32-APDS9960手势识别
  3. 《Attention Is All You Need》注意力机制公式中Q,K,V的理解
  4. 网站改版会影响网站流量吗
  5. 【TA工具】快速结合/叠加多张法线贴图
  6. Win10删除顽固文件
  7. java基础之—TreeSet集合学习笔记
  8. simp服务器协议,几个常用网络协议的简单说明
  9. ICMP详解和实例分析
  10. 利用爬虫下载批量图片