文章

MailCow安装

mailcow是一个基于docker的开源群件/邮件套件。

以下为ubuntu 22.04 LTS docker mailcow安装。

设置DNS

去自己域名的服务商设置DNS记录:

# Name

Type

Value

mail

IN A

你的IP

autodiscover

IN CNAME

mail.你的域名

autoconfig

IN CNAME

mail.你的域名

@

IN MX 10

mail.你的域名

@

IN TXT

"v=spf1 mx a -all"

dkim._domainkey

IN TXT

"v=DKIM1; k=rsa; t=s; s=email; p=后面搭建好后需要修改"

_dmarc

IN TXT

"v=DMARC1; p=reject; rua=mailto:mailauth-reports@你的域名"

以我用的华为云为例:

安装mailcow

在任意目录下运行以下命令:

git clone https://github.com/mailcow/mailcow-dockerized

这里克隆好文件后,可以给文件改个名字,我这里就改成mailcow,改好后执行以下命令进入文件夹:

cd mailcow

进入后执行构建程序:

./generate_config.sh

修改mailcow.conf中的配置,主要是修改端口(后面采用nginx反向代理)和关闭杀毒(减少内存占用),在mailcow.conf找到以下配置并修改:

#设置端口
HTTP_PORT=880
HTTP_BIND=
HTTPS_PORT=8443
HTTPS_BIND=
#设置关闭杀毒
SKIP_CLAMD=y
SKIP_SOLR=y

执行以下命令安装并运行mailcow:

docker compose pull docker compose up -d

此时你可以访问https://$你的域名:8443,默认的登录账户为 admin ,密码是 moohoo ,建议登录后理解修改密码。

在网页中添加域名

添加邮箱

更改DNS设置,将上面DSN解析中的dkim._domainkey记录值修改为下图中的值

选择邮件客户端登录邮箱测试

发送一封邮件

接收邮件成功

回复邮件成功

至此mailcow邮件服务器安装成功!

nginx代理

没有安装nginx的安装命令:

 apt install nginx

安装好后修改配置vi /etc/nginx/nginx.conf,以下配置将http转htpps,部署证书路径,将443端口转到8443端口上:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
	worker_connections 1024;
}
http {
	sendfile on;
	tcp_nopush on;
	types_hash_max_size 2048;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	gzip on;
   #邮件服务器
  server {
    listen 80;
    listen [::]:80;
    server_name mail.mjj.pub autodiscover.* autoconfig.*;
    return 301 https://$host$request_uri;
  }
  server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mail.mjj.pub autodiscover.* autoconfig.*;
    ssl_certificate "你的证书绝对路径";
    ssl_certificate_key "你的证书绝对路径key";
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    # See https://ssl-config.mozilla.org/#server=nginx for the latest ssl settings recommendations
    # An example config is given below
    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5:!SHA1:!kRSA;
    ssl_prefer_server_ciphers off;
    location /Microsoft-Server-ActiveSync {
      proxy_pass https://127.0.0.1:8443/Microsoft-Server-ActiveSync;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_connect_timeout 75;
      proxy_send_timeout 3650;
      proxy_read_timeout 3650;
      proxy_buffers 64 512k; # Needed since the 2022-04 Update for SOGo
      client_body_buffer_size 512k;
      client_max_body_size 0;

}
    location / {
      proxy_pass https://127.0.0.1:8443/;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      client_max_body_size 0;
      proxy_buffer_size 128k;
      proxy_buffers 64 512k;
      proxy_busy_buffers_size 512k;
    }
  }
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

修改好后别忘了重载nginx:

nginx -s reload

现在访问 mail.你的域名 就来到管理界面啦!

License:  CC BY 4.0