百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

基于docker快速搭建自己的域名邮箱,mailu邮件服务器

nanshan 2025-01-16 20:19 179 浏览 0 评论

一:简介

Mailu.io是一款免费开源且性能强大、功能丰富的域名邮箱系统。它基于Docker, 具有部署简单,可移植性高,备份方便等多种优势。

主要的功能:

  • 基本的邮件服务器 IMAP IMAP+,SMTP和
  • 进阶电子邮件功能 别名,域别名,自定义路由
  • Web访问 多个Webmail管理界面
  • 用户功能 别名,自动回复,自动转发,获取帐户
  • 管理员功能 全局管理员,公告,每域配额
  • 安全 强制启用TLS,Letsencrypt!,DKIM,防病毒扫描程序
  • 反垃圾邮件 自主学习 灰名单 DMARC 和 SPF

二:安装之前的准备

1:首先,你要确保你的服务器开启了25端口。测试方式:

telnet smtp.google.com 25 #谷歌邮箱地址
或者
telnet smtp.qq.com 25 #腾讯qq邮箱

没有屏蔽显示如下:

root@mail:~# telnet smtp.qq.com 25
Trying 43.129.255.54...
Connected to smtp.qq.com.
Escape character is '^]'.
220 newxmesmtplogicsvrsza9.qq.com XMail Esmtp QQ Mail Server.

屏蔽显示如下,一直在连接:

root@mail:~$ telnet smtp.qq.com 25
Trying 203.205.232.7...


注:目前绝大多数云服务器基本都屏蔽了25端口,除非是实体服务器,运营商基本不会屏蔽25端口的。

绝大多数云服务器,也可以申请解封25端口,我就是先申请然后解封的。

当然,如果你作为营销每天发广告用的,估计也不会给你解封。如果要做广告营销,可以用实体服务器,数量上基本没有限制。

2:安装docker和docker-compose

相对简单,自行安装即可

3:设置DNS

将mail.YourDomain(本人:mail.ywbj.cc)设置A记录到你的服务器IP。

设置mx记录,YourDomain指向mail.Yourdomain。如下图,我的domain是ywbj.cc

4:修改主机名(选用)

设置好主机名(服务器名, Hostname)是所有邮件服务器必不可少的一步,否则在发信时将会遇到各种错误。当然,不是很严谨也可以,一般不会出错。

vim /etc/hostname
#添加自己的域名服务器
mail.ywbj.cc


三:Mailu配置获取

官方自动生成docker-compose.yaml文件。

打开网站:https://setup.mailu.io/

第一步:

选择compose方式

第二步:

设置路径与域名信息(主要邮箱域名和服务器显示名称)中应该填写您的根域名

在Linked Website URL中填写邮件服务器主机名,我这里为mail.ywbj.cc

一定要勾选Enable the admin UI (and path to the admin UI)

不然不会安装Web控制页面

第三步:

选择网页邮箱的面板。这里可以选择Roundcube和Rainloop, 您可以根据个人偏好来选择,我这里选择Rainloop,Rainloop支持中文显示。下面的三个选项分别是杀毒、WebDAV、邮件代收,您可以根据自己的需要来勾选。服务器配置较低,不建议勾选杀毒服务,也就是第一个。配置很低,可以都不选择。

第四步:

在IP4加上你服务器地址,在public hostnames 加上自己的邮箱域名即可。192.168这个是docker内部IP,默认即可。

数据库选择

支持Sqlite,MySQL和PostgreSQL。

PostgreSQL支持自动部署,而MySQL需要手动部署,我这里默认sqlite即可

最后setup mailu生成配置文件即可。

下载配置文件

生成后,会提示步骤,在服务器上,按步骤添加下载配置文件即可。

#创建目录
mkdir /mailu
#进入目录
cd /mailu
#下载配置文件
wget https://setup.mailu.io/1.9/file/3e320eca-4b9d-46cd-9268-98e4a4f9ede7/docker-compose.yml
wget https://setup.mailu.io/1.9/file/3e320eca-4b9d-46cd-9268-98e4a4f9ede7/mailu.env

下载完成后,在mailu目录启动即可,注:需要用到80端口

#启动
docker-compose -p mailu up -d

启动后,需设置密码123456为自己设置的密码。

docker-compose -p mailu exec admin flask mailu admin admin ywbj.cc 123456

四:Mailu的email相关配置

1:登录

上面设置的admin账户,所以邮箱账户为admin@ywbj.cc,密码为123456,选择登录admin即可,以为还需要一些配置。webmail为网页版邮箱。

2:查看DNS及生成密钥

至于为什么要设置这些,因为不设置的话,虽然可以发邮箱,但是你的邮件基本都会进入别人的垃圾邮件,所以需要设置这些。让自己的邮箱更正规,更安全。可以顺利到达对方的邮箱。

在 邮件域>详细,查看DNS记录,右上角有生成密钥选项,同时生成密钥。

3:在域名管理上设置DNS及密钥

我这里用的cloudflare管理的,所以在cloudflare添加即可。

需要注意一点,DNS DKIM条目,中间哟个“”,需要去掉,然后和上面连接到一起。

添加完,大概如下:

4:邮件发送测试

点击网页邮箱,或者
https://mail.ywbj.cc/webmail 访问网页版。

测试发送谷歌邮箱。

登录谷歌邮箱查看并回复

收到邮件

5:测试垃圾邮件匹配度

打开网址,
https://www.mail-tester.com/,发送一封到提示的邮件地址。

发送后确认即可。

查看扣分的选项

扣分的这两点

1:邮件内容,我随便打了一串字母,所以识别不到正规内容,如果正规内容,这是可以避免的

2:反向DNS,这个需要在VPS供应商或者实体服务器的电信运营商设置,可以自己联系让他们设置。

当然,这样已经可以,不影响正常发送邮箱服务,除非对方邮箱设置非常严格已经机密。

到这里,mailu邮件搭建完成。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: