企业邮箱iRedMail搭建

用自己的域名作为邮箱的后缀,好看、有面子!只要域名不过期,那么,你的邮箱就永远存在!

邮件系统很多,宝塔自带的邮局更是简单,但是若想邮箱可靠(丢邮件、发送邮件进入对方垃圾箱等),还是需要花费一点功夫。

首先 VPS 支持 PTR 反向解析,尤为重要,当然,也不是必须的,看你自己的取舍,若是没有 PTR ,会存在丢失邮件的情况。

相关知识普及:

在邮件的交换记录中,有 A记录 和 PTR记录 两种,A记录大家应该是耳熟能详了,我们每天搭建服务、解析域名到 IP,用的就是 A记录,我们称为正向解析,用来映射域名到 IP

而 PTR记录,则是相反的,所以也被我们成为反向解析,他是用来把一个 IP 映射到域名。

1、干净的 VPS 一台,内存最好大于 1 GB,推荐 CentOS、Ubuntu,以下教程用 CentOS 演示,Ubuntu 请自行更换 yum 命令即可。

(CentOS 项目将重点转移到 CentOS Stream,CentOS 8 将在 2021 年底结束)

2、VPS 最好支持 PTR Records,演示用的 VPS 来自 星智云

3、域名一个,推荐托管 cloudflare (解析生效快)或者你自己的域名解析平台

(若是没有域名,或是不会注册,或是不会托管到 cloudflare ,请点击这里)

4、规划好作为邮件服务器的域名,演示用 mail.ailose.com,把该域名解析到 VPS IP。

根域名必须有A记录解析哪怕解析到127.0.0.1上都行

本次使用ailose.com作为演示,根域名不使用(但一定要解析), 我们拿mail.ailose.com来解析VPS的IP地址

1.先把根域名解析A记录

2.mail.ailose.com解析到VPS的IP

3.将ailose.com设置MX记录,解析值为mail.ailose.com, 优先级设置为10

更新系统、安装组件

apt update -y

设置 VPS 主机名

我们规划邮局的域名为 mail.ailose.com ,所以,我们需要对 VPS 的主机名进行设置。

首先,需要编辑 /etc/hosts 文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:

127.0.0.1 mail.ailose.com mail

其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。

然后,我们找到 VPS 的 /etc/hostname 文件,编辑里面的内容为 mail (域名的前缀)

这样,就设置好了主机名。重启 VPS

此时我们检查一下是否设置正确:

执行:hostname

执行:hostname -f

此时,我们分别看到mail 和 mail.ailose.com

这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了

下载并安装 iRedMail

apt-get install git -y
git clone https://github.com/iredmail/iRedMail.git
cd iRedMail
bash iRedMail.sh

系统将会自动开始安装。安装过程中会出现下面这些情况,您需要依次根据您自己的信息来设置。

  • 第一步,欢迎界面,两个选项,yes或no ,直接回车yes。
  • 第二部,设置安装目录,这里可以看到安装目录为/var/vmail 直接回车,下一步。
  • 第三步,选择web服务器,此时可以看到nginx前面有个星号,这代表已经被选中,如果没有星号,切换到nginx选项,按一下空格,星号出现,回车下一步。
  • 第四步,选择数据库,上下选择到MariaDB ,空格星号选中,回车下一步。
  • 第五步,设置数据库密码,自己设置。
  • 第六步,设置域,不带mail,就是maoge.pw。
  • 第七步,设置管理员账号的密码,不是设置账号,是密码,自己设置。
  • 第八步,选择需要安装的组件,默认即可,那个Sogo可安可不安,都行,不影响邮件服务,回车下一步。

设置完毕后,屏幕上会列出来这些信息,我们输入y确认安装。

安装需要大概10分钟左右。全部安装好之后,系统会提示是否设置防火墙规则,我们输入y确认即可。

重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。

可以通过访问(当然,我们目前还没有解析域名,后面一起解析)
https://你的域名/mail        ——邮件登录地址
https://你的域名/netdata     ——服务器状态监控
https://你的域名/iredadmin   ——邮件服务器后台管理
 
管理员账号:postmaster@你的域  例如 postmaster@163.com
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看

安装证书脚本

apt-get install certbot

然后,即可申请免费的Let’s Encrypt证书:

certbot certonly --webroot -d mail.comefly.space -w /var/www/html/

这个申请命令后会要求填入邮箱地址

然后根据提示输入A,然后他会提示给你发广告邮件输入N不同意,

生成的公钥在路径 /etc/letsencrypt/live/mail.ailose.com/fullchain.pem

私钥 /etc/letsencrypt/live/mail.ailose.com/privkey.pem

申请完毕后,我们首先配置Nginx.

编辑文件**/etc/nginx/templates/ssl.tmpl**, 找到下面两行:

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

将地址替换为您的证书地址,我这里是:

ssl_certificate /etc/letsencrypt/live/mail.ailose.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.ailose.com/privkey.pem;

保存好后重新载入Nginx配置文件:

service nginx reload

收发信时,同样需要用到TLS安全验证,因此我们还需要配置Postfix和Dovecot. 首先,编辑**/etc/postfix/main.cf**文件,找到下面这三行(我这里是第95 ~ 97行):

smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

将其替换为您的证书地址:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.ailose.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ailose.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.ailose.com/chain.pem

保存好之后重新载入Postfix配置文件。

service postfix reload

最后,给Dovecot配置证书。编辑文件**/etc/dovecot/dovecot.conf**, 找到下面这两行(我这里是第45和46行):

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

将其替换为您的证书地址:

ssl_cert = </etc/letsencrypt/live/mail.ailose.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.ailose.com/privkey.pem

保存好之后重新载入Dovecot配置文件。

service dovecot reload

这样,我们为Nginx, Postfix, Dovecot分别配置好了SSL/TLS安全证书。

灰名单(greylist)是一项防止垃圾邮件的功能,iRedMail默认开启了该功能。但是,该功能开启之后,收所有信件的时候都有较长时间的延迟。因此,我们这里将该功能关闭。

我们首先给配置文件提权:

chmod +w /opt/iredapd/settings.py

然后编辑该文件(/opt/iredapd/settings.py),找到下面这行:

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

将其中的”greylisting”这项删去即可。然后,重启iredapd, 并且恢复文件权限

service iredapd restart
chmod -w /opt/iredapd/settings.py

您需要设置一条TXT记录,将根域名(比如我这里的ailose.com)解析值设置如下。

内容为 v=spf1 mx ~all

DMARC记录的设置比较复杂,我们这里先简单设置一下,对于普通的域名邮箱足够使用了。以ailose.com域名为例,您需要添加一条TXT记录,将_dmarc.ailose.com (请不要遗漏dmarc前面的那个下划线)解析值设置为如下:

v=DMARC1; p=none; pct=100; rua=mailto:dmarc@ailose.com

配置DKIM记录之前,我们先要生成DKIM密钥。在SSH中执行:

amavisd-new showkeys

将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本

Perfect!mail-tester 测试10分!满分10!多棒的企业/个人邮件服务器,还担心会丢邮件吗?

其实有些人,觉得免费邮箱已经够用了,所以,此教程送给爱折腾、希望邮件自由的小伙伴们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis的安装和配置、基本命令

一、实验目的 本实验旨在帮助学生熟悉Redis的安装、配置和基本使用&#xff0c;包括启动Redis服务、使用命令行客户端进行操作、配置Redis、进行多数据库操作以及掌握键值相关和服务器相关的命令。 二、实验环境准备 1. JAVA环境准备&#xff1a;确保Java Development Kit …

mysql community server社区版M2 macbook快速安装

Django玩的时候用到了mysql&#xff0c;简单整理一下这个老伙计的安装教程 1. 下载地址&#xff1a;MySQL :: Download MySQL Community Server 2. M2芯片mac的话选择第一个下载&#xff0c;按提示安装即可 3. 或者直接用这篇文章附属安装包 4. 但安装之后可能会有zsh: command…

【桌面程序】PyWebview跨平台桌面应用程序

什么是PyWebview PyWebView 是一个轻量级的 Python 库&#xff0c;用于将网页&#xff08;HTML、CSS、JavaScript&#xff09;嵌入到本地应用程序的窗口中。它允许你创建带有图形用户界面&#xff08;GUI&#xff09;的桌面应用程序&#xff0c;并且能够使用 Web 技术&#xf…

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写内核 LED HDF 驱动程序

接下来编译 LED 驱动&#xff0c;该驱动用于在基于华为设备框架&#xff08;HDF&#xff09;的系统中控制 LED 灯的开关&#xff0c;完整代码如下所示&#xff1a; 更多内容可以关注&#xff1a;迅为RK3568开发板篇OpenHarmony

【tailscale 和 ssh】当服务器建立好节点,但通过客户端无法通过 ssh 连接

背景 当服务器建立好节点&#xff0c;一切显示正常但通过客户端无法通过 vs code 中的 ssh 连接到服务器 问题解决 因为服务器是重装过的&#xff0c;所以忘记在服务器上下载 ssh 了。。。安装完成并启动 SSH 服务后便可正常连接&#xff01; sudo apt update sudo apt in…

广播网络实验

1 实验内容 1、构建星性拓扑下的广播网络,实现hub各端口的数据广播,验证网络的连通性并测试网络效率 2、构建环形拓扑网络,验证该拓扑下结点广播会产生数据包环路 2 实验流程与结果分析 2.1 实验环境 ubuntu、mininet、xterm、wireshark、iperf 2.2 实验方案与结果分析…

Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示

Ubuntu20.04默认情况下为root账号自动登录&#xff0c;本文介绍如何取消root账号自动登录&#xff0c;改为通过输入账号密码登录&#xff0c;使用触觉智能EVB3568鸿蒙开发板演示&#xff0c;搭载瑞芯微RK3568&#xff0c;四核A55处理器&#xff0c;主频2.0Ghz&#xff0c;1T算力…

测试工程师的linux 命令学习(持续更新中)

1.ls """1.ls""" ls -l 除文件名称外&#xff0c;亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -l等同于 ll第一列共10位&#xff0c;第1位表示文档类型&#xff0c;d表示目录&#xff0c;-表示普通文件&#xff0c;l表示链接文件。…

Solidity01 Solidity极简入门

一、Solidity 简介 Solidity 是一种用于编写以太坊虚拟机&#xff08;EVM&#xff09;智能合约的编程语言。我认为掌握 Solidity 是参与链上项目的必备技能&#xff1a;区块链项目大部分是开源的&#xff0c;如果你能读懂代码&#xff0c;就可以规避很多亏钱项目。 Solidity …

2025.1.16——六、BabySQL 双写绕过|联合注入

题目来源&#xff1a;buuctf [极客大挑战 2019]BabySQL 1 目录 一、打开靶机&#xff0c;分析已知信息 二、手工注入解题 step 1&#xff1a;万能密码 step 2&#xff1a;正常注入&#xff0c;判断字段数 step 3&#xff1a;绕过 step 4&#xff1a;查数据库 step 5&am…

从 Android 进行永久删除照片恢复的 5 种方法

从 Android 设备中丢失珍贵的照片可能是一种毁灭性的经历。无论是由于意外删除、软件故障还是系统更新&#xff0c;如何从 Android 永久恢复已删除的照片是一个普遍的问题。 幸运的是&#xff0c;有一些解决方案可以帮助找回丢失的记忆。本指南将涵盖您需要了解的有关如何检索…

在.NET用C#将Word文档转换为HTML格式

将Word文档转换为HTML格式尤其具有显著的优势&#xff0c;它不仅能够确保文档内容在多种设备和平台上保持一致灵活的显示&#xff0c;还便于通过网络进行传播和集成到各种Web应用中。随着越来越多的企业和开发者寻求更灵活、更具兼容性的文件处理方式&#xff0c;.NET框架下的C…

Web安全|渗透测试|网络安全

基础入门(P1-P5) p1概念名词 1.1域名 什么是域名&#xff1f; 域名&#xff1a;是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时对计算机的定位标识&#xff08;有时也指地理位置&#xff09;。 什么是二级域名多级域名…

网络安全构成要素

一、防火墙 组织机构内部的网络与互联网相连时&#xff0c;为了避免域内受到非法访问的威胁&#xff0c;往往会设置防火墙。 使用NAT&#xff08;NAPT&#xff09;的情况下&#xff0c;由于限定了可以从外部访问的地址&#xff0c;因此也能起到防火墙的作用。 二、IDS入侵检…

鸿蒙UI(ArkUI-方舟UI框架)-开发布局

文章目录 开发布局1、布局概述1&#xff09;布局结构2&#xff09;布局元素组成3&#xff09;如何选择布局4&#xff09;布局位置5&#xff09;对子元素的约束 2、构建布局1&#xff09;线性布局 (Row/Column)概述布局子元素在排列方向上的间距布局子元素在交叉轴上的对齐方式(…

mac 安装mongodb

本文分享2种mac本地安装mongodb的方法&#xff0c;一种是通过homebrew安装&#xff0c;一种是通过tar包安装 homebrew安装 brew tap mongodb/brew brew upate brew install mongodb-community8.0tar包安装 安装mongodb 1.下载mongodb社区版的tar包 mongdb tar包下载地址 2…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行&#xff08;APEX&#xff09;接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域&#xff0c;综合模块化航空电子设备&#xff08;IMA&#xf…

搜维尔科技提供完整的人形机器人解决方案以及训练系统

问题&#xff1a;从灵巧手收集的数据是否也会在大脑大模型中训练&#xff0c;或是在专门用于手部控制的单独模型中训练&#xff1f; Q: If the data collected from dexterous hands will be trained as well in the brain large model, or in a separate model dedicated for…

一文了解如何使用 DBeaver 管理 DolphinDB

在日常的数据开发、分析和数据库运维中&#xff0c;一款优秀的 IDE 能够极大地提升工作效率。DBEaver 是一款由 Java 编写的一站式跨平台连接器&#xff0c;其社区版本已能支持连接近百种数据库&#xff0c;受到广大开发者的喜爱。近期。DolphinDB 与 DBeaver 团队共同努力&…

OpenWrt 中使用 LuCI 界面部署 Docker 镜像

本篇博客将介绍如何在 OpenWrt 上使用 LuCI 部署 Docker 镜像&#xff0c;以 "hello-world" 镜像为例。 前提条件 已安装支持 Docker 的 OpenWrt 系统。 Docker 服务已在 OpenWrt 上成功安装并运行。 LuCI Docker 插件&#xff08;luci-app-docker 或类似的管理界…