如何在Ubuntu 20.04上安装Mailu Mail Server

时间:2020-02-23 14:39:16  来源:igfitidea点击:

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登录页面。