转 服务器搭建3
|-转 在 CentOS 7 上搭建属于自己的 “完美” 邮件系统
文章太长了,看评论反响还不错,先收藏下
一、前言
为什么要自己搭建邮件系统?
• 自从小学上信息技术课接触到电子邮件开始,我就对 @ 后面那几个字母充满了疑惑,为什么 @ 后面的几个字母一定要是 qq 、gmail 呢?难道不能自定义吗?直到初三我弄懂了域名这个概念之后,这个谜团才被解开:我们用的是别人的服务器来使用电子邮件服务。自己有域名当然也可以搭建一个啊!由于当时还基本上没有云主机这种东西,而且家里也不让我整天开着电脑(电信有公网 IP ),所以该计划暂时搁置。直到 2015 年,用 163 邮箱的 Apple ID 大规模被盗(很庆幸我逃过了一劫),我这才明白了自己有个邮箱服务器那是多么重要!恰好高考完了,可以折腾一番了。当时用的是傻瓜式的 macOS Server ,啥原理都不懂,点几下就搭建成功了,就这样凑合着用了一年,系统非常稳定,除了停电以及升级系统之外没有重启过(这里赞一下 macOS Server )。macOS Server 最大的缺点就是可以自己定制的功能太少了!现在熟悉了 Linux 的基本操作和服务器的基础知识,是时候该在 Linux 平台上搭建一个了!
• 其实,Linux 上也有傻瓜式邮件系统,iRedMail 就是其中之一。不过我玩 Linux 的目的就是为了学习服务器以及网络知识,还是自己搭建一个才能学到东西。
邮件系统所涉及的模块较多,而且软件又是不断更新的,不同 Linux 发行版的系统环境和默认配置文件也可能不相同,想只看一篇教程然后一次完美的几率太低了。我自己折腾了一个星期,中途也遇到过各种各样的错误,不过好在最后都解决了。所以说,想要自己亲手搭建一个完美的邮件系统,耐心是必不可少的。
我把我搭建的整个过程整理一下,步骤尽量精简,然后写下了这一篇文章,主要目的是想给大家分享下我的学习经验,让新手少走一点弯路,也能给自己增加点印象。所有的步骤(除了域名参数)我在写完之后都有重装系统然后全部重新走一遍验证一次。如果想提高一次成功的几率,建议使用全新安装的系统,然后严格按照我的步骤要求来做。如有错误,请及时留言提出,谢谢!
二、所需软件 & 环境
- 操作系统:CentOS 7.3.1611 最小安装 (已关闭 SELinux 和防火墙)
- 应用软件: Postfix 2.10.1 、Dovecot 2.2.10 、MariaDB 5.5.52 、OpenDKIM 2.11.0 、Nginx 1.10.2 、PHP 5.4.16 、Roundcube WebMail 1.3.0
- 域名(主机名):example.com
- 公网 IP:1.1.1.1
- 二级域名 mail(这里就是 mail.example.com)的数字证书(推荐免费的 Let’s Encrypt)
说明
1、下文的 MySQL 均代表 MariaDB;
2、Nginx 和 PHP 不做详细配置,只确保 Webmail 可以正常使用。
三、原理 & 关系图
下面两张图足以说明一切:
说明
• SMTP 是 Postfix 发件的模块,SMTPD 是 Postfix 收件的模块,请注意区分。
四、安装软件
执行以下命令:
yum -y update && \
yum -y install epel-release && \
yum -y update && \
yum -y install dovecot dovecot-mysql mariadb-server nginx opendkim php-fpm php-mbstring php-mysql php-xml postfix pypolicyd-spf tar wget
若出现密钥警告,按 y 回车即可。
五、配置 MySQL
5.1 初始化 MySQL
5.1.1 启动服务
执行以下命令:
systemctl start mariadb
5.1.2 进行安全设置
执行以下命令:
mysql_secure_installation
然后根据提示操作:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFUL***!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): # 回车即可
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y # 使用密码验证
New password: # 设置 root 密码
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
# 后面的问题全部按 y 回车,这里省略。
5.2 邮件系统数据库的创建
注意
• SQL 语句后面要加上分号才能执行。
5.2.1 进入 MySQL 命令行界面
执行以下命令:...
浏览更多内容请先登录。
立即注册
分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。
更新于:2022-06-02 19:03:48
相关内容
阿里云香港轻量服务器LNMP搭建yum安装Centos Stream8全流程
Centos 服务器搭建(Centos8服务器搭建遇到的各种问题及解决方法)
Centos8 更新yum或安装软件时提示 Failed to download metadata for repo...
从CentOS 8到CentOS Stream,到底发生什么事了?
CentOS8出现“ Error: Failed to download metadata for repo ‘AppStrea...
如何将CentOS 8转换为CentOS Stream(202205实测有效)
Centos7 安装Apache过程详解
邮件服务器搭建内容整理
基于CentOS7 Centos8平台搭建邮件服务器
使用EwoMail搭建属于自己的个人邮件服务器——超详细图文教程
如何在 CentOS 8 上安装和配置 Postfix 邮件服务器
使用EwoMail 邮件服务器软件搭建邮件服务器(在Centos Stream 8上安装失...
Linux利用mail-in-a-box搭建自己的域名邮箱(全流程完整版,包括添加SSL)
0成本,一招永久解决自建邮件服务器被退信问题
CloudFlare CDN 使用教程 启用 DNSSCE
ubuntu 22.04配置国内镜像源-2024.7月最新版
用mail-in-a-box发送邮件时报错 SMTP 错误 (554): 添加收件人失败 ervice un...
mail-in-a-box API接口文档以及PHP代码示例
CentOS 8 结束生命周期,切换到 CentOS-Vault 源教程(vault源不好用,...
推荐内容