如何在Ubuntu 20.04上安装Mailu Mail Server
Mailu是一个在Docker容器上运行的简单但功能强大的邮件服务器。
它是一个免费的软件,适用于建议和贡献。
它意味着提供一个简单的电子邮件服务器设置。
Mailu图像应在运行Docker(> = 1.11)的任何云服务器上运行,我们可以在Docker Compose,Kubernetes和Rancher之间进行选择以运行Mailu Mail Server。
已编写本教程以帮助用户在Ubuntu 20.04服务器上安装和配置Mailu Mail Server。
Mailu Mail Server的功能
就像任何其他邮件服务器一样,预计Mailu将满足发送和接收电子邮件的要求。
以下是Mailu Mail Server最重要的功能:标准电子邮件服务器,IMAP和IMAP +,SMTP和IMAPASHADADADCUCTICE,别名,域别名,自定义RoutingWeb Access,多个Webmails和管理界面特征,别名,自动回复,自动前进,获取的仪库功能,全局管理员,公告,每个域委派,报价,强制执行TLS,Letsencrypt!,传出的DKIM,防我将毒扫描仪扫描仪,自动学习,Greylisting,DMARC和Spffreedom,所有FOSS组件,没有跟踪器包括
在Ubuntu 20.04上设置Mailu Mail Server
安装前更新系统包
sudo apt-get update sudo apt-get upgrade
我们需要确保我们的系统具有有效的IP地址和完全限定的域名。
对于我们的域也应该有有效的MX记录。
要设置服务器IP和主机名,请运行以下命令:
sudo hostnamectl set-hostname mail.example.com
还向/etc/hosts文件添加服务器的FQDN和IP地址。
$sudo vim /etc/hosts 62.15.116.167 mail.example.com
一旦设置,重新启动系统
sudo reboot
应通过系统防火墙允许以下端口,因为它们对电子邮件至关重要。
我们可以使用UFW打开端口,如下所示:
sudo ufw allow proto tcp from any to any port 25,80,443,110,143,465,587,993,995
在Ubuntu上安装Docker和Docker撰写
要在Ubuntu 20.04上安装Docker和Docker Compose,请检查我们的教程。
在Ubuntu上安装Docker
在Ubuntu上安装Docker Compose
创建maku目录
安装Docker和Docker Compose后,继续创建Mailu将存储其数据的目录。
sudo mkdir /mailu
Mailu使用Docker Compose.yml文件,并且还依赖于Mailu.env进行各种设置。
我们需要使用在线Mailu设置实用程序为环境生成Mailu配置。
生成器将为我们提供Docker Compose.yml和mailu.env文件。
生成配置后,我们将接收要用于下载文件的链接。
确保在Mailu目录中下载文件。
生成文件时,我们应该获得这样的页面
对于我的安装案例,我生成并获得了以下内容的文件:
$vim mailu.env # Mailu main configuration file # # This file is autogenerated by the configuration management wizard for compose flavor. # For a detailed list of configuration variables, see the documentation at # https://mailu.io ################################### # Common configuration variables ################################### # Set to a randomly generated 16 bytes string SECRET_KEY=YPQAFO2THH5WSM7I # Subnet of the docker network. This should not conflict with any networks to which your system is connected. (Internal and external!) SUBNET=192.168.203.0/24 # Main mail domain DOMAIN=example.com # Hostnames for this server, separated with comas HOSTNAMES=mailu.example.com # Postmaster local part (will append the main mail domain) POSTMASTER=admin # Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt) TLS_FLAVOR=letsencrypt # Authentication rate limit (per source IP address) AUTH_RATELIMIT=10/minute;1000/hour # Opt-out of statistics, replace with "True" to opt out DISABLE_STATISTICS=False ################################### # Optional features ################################### # Expose the admin interface (value: true, false) ADMIN=true # Choose which webmail to run if any (values: roundcube, rainloop, none) WEBMAIL=roundcube # Dav server implementation (value: radicale, none) WEBDAV=radicale # Antivirus solution (value: clamav, none) ANTIVIRUS=clamav ################################### # Mail settings ################################### # Message size limit in bytes # Default: accept messages up to 50MB # Max attachment size will be 33% smaller MESSAGE_SIZE_LIMIT=50000000 # Networks granted relay permissions # Use this with care, all hosts in this networks will be able to send mail without authentication! RELAYNETS= # Will relay all outgoing mails if configured RELAYHOST= # Fetchmail delay FETCHMAIL_DELAY=600 # Recipient delimiter, character used to delimiter localpart from custom address part RECIPIENT_DELIMITER=+
和Docker-Compose文件如下:
$docker-compose.yml
# This file is auto-generated by the Mailu configuration wizard.
# Please read the documentation before attempting any change.
# Generated for compose flavor
version: '2.2'
services:
# External dependencies
redis:
image: redis:alpine
restart: always
volumes:
- "/mailu/redis:/data"
# Core services
front:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
logging:
driver: json-file
ports:
- "62.15.116.167:80:80"
- "::1:80:80"
- "62.15.116.167:443:443"
- "::1:443:443"
- "62.15.116.167:25:25"
- "::1:25:25"
- "62.15.116.167:465:465"
- "::1:465:465"
- "62.15.116.167:587:587"
- "::1:587:587"
- "62.15.116.167:110:110"
- "::1:110:110"
- "62.15.116.167:995:995"
- "::1:995:995"
- "62.15.116.167:143:143"
- "::1:143:143"
- "62.15.116.167:993:993"
- "::1:993:993"
volumes:
- "/mailu/certs:/certs"
- "/mailu/overrides/nginx:/overrides"
admin:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/data:/data"
- "/mailu/dkim:/dkim"
depends_on:
- redis
imap:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/mail:/mail"
- "/mailu/overrides:/overrides"
depends_on:
- front
smtp:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/overrides:/overrides"
depends_on:
- front
antispam:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/var/lib/rspamd"
- "/mailu/dkim:/dkim"
- "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- front
# Optional services
antivirus:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}clamav:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/data"
webdav:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/dav:/data"
fetchmail:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
# Webmail
webmail:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}roundcube:${MAILU_VERSION:-1.7}
restart: always
env_file: mailu.env
volumes:
- "/mailu/webmail:/data"
depends_on:
- imap
networks:
default:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.203.0/24
使用设置完成后,使用Docker在Mailu目录中运行Mailu
$sudo docker-compose up -d Recreating mailu_webdav_1 ... done Recreating mailu_fetchmail_1 ... done Recreating mailu_front_1 ... done Recreating mailu_antivirus_1 ... done Recreating mailu_admin_1 ... done Recreating mailu_antispam_1 ... done Recreating mailu_imap_1 ... done Recreating mailu_smtp_1 ... done Recreating mailu_webmail_1 ... done
通过运行以下命令设置管理员用户:
$docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD created admin user
This creates a user called Hyman@theitroad with admin rights.
在Ubuntu 20.04上配置Mailu Mail Server
完成后,使用主机名访问Mailu Web Portal:https://mailu.example.com。
我们应该获取页面要与管理员密码登录。
登录后,我们应该看到以下页面。
通过单击"更新密码",确保将密码更新到更强大的密码。
创建域名mailu.
要添加域,请单击域→新域
创建用户makeu.
要创建用户,请单击邮件域。
在"管理"下,单击将我们带到用户列表的邮箱图标。
单击"添加用户"
maku webmail.
对于我的安装,我选择使用RoundCube进行Webmail。
访问webmail开始发送电子邮件。
单击Webmail,然后将我们指向RoundCube登录页面。

