<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>邮件服务 on 梓晨's Blog</title><link>https://blog.dawnwl.com/tags/email/</link><description>Recent content in 邮件服务 on 梓晨's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>梓晨科技</copyright><lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.dawnwl.com/tags/email/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker 部署 Poste.io 邮件服务器</title><link>https://blog.dawnwl.com/posts/docker-poste/</link><pubDate>Sat, 03 Jul 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/docker-poste/</guid><description>&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;自建邮件服务可以不受发件量限制，批量发件成本更低，但部署相对复杂，而且容易进垃圾箱。不过现在越来越多的服务商已经开发好了产品，支持一键部署等方式，极大降低了部署和使用难度。&lt;/p&gt;
&lt;h2 id="关于poste"&gt;关于Poste
&lt;/h2&gt;&lt;p&gt;Poste.io 是一款提供免费与付费版本的邮件服务软件，可以很方便的搭建：SMTP + IMAP + POP3 + 反垃圾邮件 + 防病毒 + Web 管理 + Web 电子邮件，支持以下特性。
SPF、DKIM、DMARC、SRS 的原生实现，带有简单的向导
用于检测木马、病毒、恶意软件的防病毒引擎 ( ClamAV )
内置垃圾邮件过滤器( RSPAMD )
HTTPS 上的Webmail 客户端（Roundcube）
通过Sieve 脚本进行电子邮件重定向、自动回复和其他过滤（电子邮件所有者管理，每个操作都可以编写脚本）
用于限制邮箱空间或电子邮件数量的配额
系统管理员、域管理员、电子邮件所有者具有不同权限的Web 管理。
内置Microsoft 产品的自动发现功能，Thunderbird&amp;hellip;
帮助正确设置域和邮件服务器的诊断
SMTP - 端口 25、465 (TLS)、587
POP3 - 端口 110、995 (TLS)
IMAP - 端口 143、993 (TLS)
SSL TLS无处不在！没有个人数据、电子邮件、登录信息通过互联网未加密。
默认情况下，所有密码都存储为加盐SHA512哈希（5000 轮）。攻击者将很难破解您的密码。
整个邮件服务器容器由 Docker 与其他应用程序隔离。&lt;/p&gt;
&lt;h2 id="准备工作"&gt;准备工作
&lt;/h2&gt;&lt;p&gt;一台VPS，有独立IP
支持25端口及邮件发送
建议内存1Gb以上
干净的IP,没有被墙,没有被标记为垃圾IP
提前安装好Docker
Docker 安装步骤见 &lt;a class="link" href="https://blog.dawnwl.com/posts/linux-install-docker/" &gt;Linux 安装 Docker Engine 与 Docker Compose&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="已有-postfix-时处理端口占用centos--yum-示例"&gt;已有 Postfix 时处理端口占用（CentOS / YUM 示例）
&lt;/h2&gt;&lt;p&gt;已有 Postfix 占用邮件端口、且准备由 Poste.io 接管邮件服务时，可以卸载 Postfix。未安装 Postfix 的环境跳过此步：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum -y autoremove postfix
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="一键快速部署命令"&gt;一键快速部署命令
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -d &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 8888:8888 -p 25:25 -p 110:110 -p 143:143 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 4190:4190 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="s2"&gt;&amp;#34;HTTPS_PORT=8888&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;TZ&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Asia/Shanghai &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="s2"&gt;&amp;#34;DISABLE_CLAMAV=TRUE&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e &lt;span class="s2"&gt;&amp;#34;DISABLE_RSPAMD=TRUE&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v ~/mail-data:/data &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &lt;span class="s2"&gt;&amp;#34;mailserver&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -h &lt;span class="s2"&gt;&amp;#34;mail.yourdomain.com&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -t analogic/poste.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;部署后访问 &lt;code&gt;https://IP:8888/&lt;/code&gt;，根据提示完成初始化设置。本例通过 &lt;code&gt;DISABLE_CLAMAV&lt;/code&gt; 和 &lt;code&gt;DISABLE_RSPAMD&lt;/code&gt; 关闭病毒扫描与垃圾邮件过滤，以减少资源占用。&lt;/p&gt;
&lt;p&gt;参数对应上面的部署命令：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;参数&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-p 8888:8888&lt;/code&gt;、&lt;code&gt;HTTPS_PORT=8888&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;将 HTTPS 管理页面设为 8888 端口并映射到宿主机&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DISABLE_CLAMAV=TRUE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;禁用 ClamAV 病毒扫描&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DISABLE_RSPAMD=TRUE&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;禁用 Rspamd 垃圾邮件过滤&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TZ=Asia/Shanghai&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;使用上海时区&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-v ~/mail-data:/data&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;将邮件数据持久化到宿主机 &lt;code&gt;~/mail-data&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-h mail.yourdomain.com&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;邮件服务器域名，替换为自己的域名&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--restart unless-stopped&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;容器退出时自动重启，手动停止后保持停止状态&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="修复某些页面https端口变443问题"&gt;修复某些页面HTTPS端口变443问题
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; mailserver sh -lc &lt;span class="s1"&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;cp -n /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.bak
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;sed -i &amp;#34;s|HTTP_HOST \\\$host;|HTTP_HOST \\\$host:\\\$server_port;|&amp;#34; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; /etc/nginx/fastcgi_params
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;grep -n &amp;#34;HTTP_HOST&amp;#34; /etc/nginx/fastcgi_params
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;nginx -t &amp;amp;&amp;amp; nginx -s reload
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;参考：&lt;a class="link" href="https://poste.io/doc" target="_blank" rel="noopener"
 &gt;Poste.io 部署参数&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>