容器化(Docker)部署poste.io私有郵局
在若大的互聯網,我們都會通過郵箱注冊各種各樣的賬號,但是很多時候隻有一個主郵箱有著諸多不便,所以我們希望,最好是一個平台對應一個email,且無限製。
我在找了很多可以私有部署的郵局之後,最終選擇了poste.io,隻看中了一個點,輕量化部署,1G內存完全足矣,而且部署方便,也就意味著遷移方便。
環境
下麵我將在HostHatch的VPS上麵部署,配置如下:
1 核
2 GB RAM
請注意,一定要確保你的VPS商家開放了25端口,否則搭建不成功,一般發工單都可以解除限製
- 係統
我將采用CentOS 8
的係統
$ cat /etc/redhat-release
CentOS Linux release 8.3.2011
$ uname -a
Linux localhost.localdomain 4.18.0-240.15.1.el8_3.x86_64 #1 SMP Mon Mar 1 17:16:16 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
docker和docker-componse安裝請參考Install Docker Engine on CentOS和Install Docker Compose。
運行poste.io
- 創建poste.io運行目錄
$ mkdir -p deploy/mail
$ cd deploy/mail
- 創建數據存放目錄
$ mkdir data
- 創建docker-compose.yml配置文件
$ vim docker-compose.yml
version: "3.8"
services:
mail:
image: analogic/poste.io
restart: always
hostname: mail.ansheng.me
ports:
- "25:25"
- "172.17.0.1:8080:8080"
#- "4433:4433"
- "110:110"
- "143:143"
- "465:465"
- "587:587"
- "993:993"
- "995:995"
environment:
- TZ=Asia/Shanghai
- DISABLE_CLAMAV=TRUE
- DISABLE_RSPAMD=TRUE
- HTTPS=OFF
- HTTP_PORT=8080
#- HTTPS_PORT=4433
volumes:
- ./data:/data
由於https是在NGINX上麵配置的,所以poste.io隻運行80端口且綁定在172.17.0.1:8080
這個docker的host地址。
下麵兩個配置是關閉反垃圾郵件的功能,實測可以節省很多內存
- DISABLE_CLAMAV=TRUE
- DISABLE_RSPAMD=TRUE
在部署中,HTTPS我們在NGINX中上麵配置,為了可以共用80和443,至於那些選項是什麽意思,可以參考Getting started,官方文檔會有說明。
- 運行
$ docker-compose up -d
- 查看日誌
$ docker-compose logs -f
# 當出現下麵的提示表示啟動完成
......
mail_1 | [cont-init.d] done.
mail_1 | [services.d] starting services
mail_1 |
mail_1 |
mail_1 | Poste.io administration available at https://172.30.0.2:443 or http://172.30.0.2:8080
mail_1 |
mail_1 |
mail_1 | [services.d] done.
配置DNS解析
官方文檔請參考Configuring DNS,我的域名是放在Cloudflare的,首先我們需要加一條A記錄,如下:
增加imap
、pop
、smtp
記錄
增加MX
、SPF
、DMARC
其實我都已經加好了,所以我隻是截圖把配置發出來,按照上麵的配置對照著來就可以
配置Nginx
- 安裝
$ dnf install nginx -y
- 添加配置
$ vim /etc/nginx/conf.d/mail.ansheng.me.conf
server {
listen 80;
server_name mail.ansheng.me;
if ($host = mail.ansheng.me) {
return 301 https://$host$request_uri;
}
return 404;
}
server {
listen 443 ssl http2;
server_name mail.ansheng.me;
ssl_certificate "/etc/nginx/ssl/mail.pem";
ssl_certificate_key "/etc/nginx/ssl/mail.key";
index index.html;
location / {
proxy_pass http://172.17.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 43200000;
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_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_buffering off;
}
}
我將SSL證書放在了/etc/nginx/ssl/
這個目錄下
- 啟動並設置開機啟動
$ systemctl enable --now nginx
瀏覽器訪問https://mail.ansheng.me/
,會讓你配置管理員的賬號和密碼,做對應的設置就可以
配置
登陸後台的麵板大概長這樣
- TLS
選擇左側欄的System settings
-> TLS certificate
,我們需要上傳ssl證書到poste.io,否則客戶端TLS無法使用
- DKIM
為了防止進入垃圾箱,我們需要添加DKIM的配置,找到Virtual domains
-> mail.ansheng.me
請選擇自己的域名 -> 點擊create new key
在到DNS裏麵添加以下記錄
- 收發件測試
配置完成之後我們可以退出登錄,然後登陸https://mail.ansheng.me/webmail/
,發送一封郵件到其他郵箱測試是否可以收到
打開Gmail,很快就會收到郵件,有可能會進垃圾箱,可能解析還沒生效
然後我們回複郵件看是否能收到
可以收到回複
- 客戶端
如果你需要配置客戶端,例如通過Gmail、Foxmail這些第三方的,請參考Example client settings,注意host和端口,我在iOS上麵的Gmail已經配置成功,可以收發郵件,正常使用。
結尾
- 端口說明
端口 | 描述 |
---|---|
25 | SMTP – mostly processing incoming mails |
110 | POP3 – standard protocol for accessing mailbox, STARTTLS is required before client auth |
143 | IMAP – standard protocol for accessing mailbox, STARTTLS is required before client auth |
465 | SMTPS – Legacy SMTPs port |
587 | MSA – SMTP port used primarily for email clients after STARTTLS and auth |
993 | IMAPS – alternative port for IMAP encrypted since connection |
995 | POP3S – encrypted POP3 since connections |
相關說明:
1、VIP會員無限製任意下載,免積分。立即前往開通>>
2、下載積分可通過日常 簽到、綁定郵箱 以及 積分兌換 等途徑獲得!
3、本站資源大多存儲在雲盤,如出現鏈接失效請評論反饋,如有密碼,均為:www.ipipn.com。
4、所有站內資源僅供學習交流使用。未經原版權作者許可,禁止用於任何商業環境,否則後果自負。為尊重作者版權,請購買正版作品。
5、站內資源來源於網絡公開發表文件或網友分享,如侵犯您的權益,請聯係管理員處理。
6、本站提供的源碼、模板、軟件工具等其他資源,都不包含技術服務,請大家諒解!
7、源碼、模板等資源會隨著技術、壞境的升級而存在部分問題,還請慎重選擇。
PS.源碼均收集自網絡,如有侵犯閣下權益,請發信件至: admin@ipipn.com .
源站網 » 容器化(Docker)部署poste.io私有郵局