1. 为什么我要自己搭邮件服务器?
几年前,我还在用各种免费的企业邮箱服务,直到有一次,因为一个域名解析的小问题,整个团队的邮件延迟了好几个小时。从那时起,我就下定决心,要把通信的命脉掌握在自己手里。自己搭建邮件服务器,听起来像是极客的玩具,但实际上,对于中小团队、个人开发者,或者是对数据隐私有要求的朋友来说,这绝对是一项“真香”的技能。
自己搭邮件服务器,最直接的好处就是完全自主可控。域名是你的,数据在你自己的服务器上,规则由你定。你可以创建任意数量的邮箱账号(admin@你的域名.com、support@...、hr@...),不用担心按用户数收费。其次,它能让你深入理解电子邮件这套运行了半个世纪的古老协议,从SMTP握手到IMAP同步,这些知识在调试各种应用集成时非常有用。当然,还有一点小小的“虚荣心”——用自己域名的邮箱发信,在合作伙伴眼里,专业度瞬间提升不少。
当然,自己搭建意味着你要扮演“邮局局长”、“邮递员”和“保安”三个角色。你需要负责服务器的稳定运行、邮件的准确投递,以及抵御垃圾邮件和黑客的攻击。这听起来有点复杂,但别担心,只要跟着步骤一步步来,利用 Postfix、Dovecot 和 MySQL 这套久经考验的“黄金组合”,完全可以在一个下午的时间里,从零构建出一个坚固可靠的邮件系统。我会把我踩过的坑、调优的参数都分享出来,让你少走弯路。
2. 动手之前:必不可少的准备工作
搭建邮件服务器和搭个博客不一样,它严重依赖“外部身份”。简单说,互联网上的其他邮件服务(比如Gmail、QQ邮箱)得能找得到你、认得你。这就好比开公司,你光有办公室(服务器)不行,还得在工商局注册(DNS解析),并且有个好口碑(反垃圾信誉)。准备工作做得好,后面事半功倍。
第一,你需要一台“正经”的服务器。 推荐使用 Ubuntu 22.04 LTS 或 20.04 LTS,系统稳定,社区支持好。最关键的一点:服务器必须有一个固定的公网IP地址。动态IP(比如家里宽带)是绝对不行的,因为你的IP会被全球的DNS记录引用。云服务商(如阿里云、腾讯云、DigitalOcean、Vultr)的VPS是最佳选择。购买后,记得在控制台的安全组或防火墙里,预先放行以下端口:25(SMTP发信)、587(加密发信)、465(SMTPS,较少用)、143(IMAP)、993(IMAPS)、110(POP3)、995(POP3S)、80和443(用于Webmail和获取SSL证书)。
第二,注册一个属于你自己的域名。 这是你邮箱的“门牌号”,比如 yourcompany.com。你可以在任何域名注册商那里购买。有了域名之后,我们需要为它配置几条至关重要的DNS记录,这是整个搭建过程中最容易出错,也最关键的环节。很多朋友服务器配置一切正常,却收不到外部邮件,八成是DNS没配好。
- A记录:告诉全世界,你的邮件服务器主机名指向哪个IP。通常你需要创建一条:主机名
mail,记录值填写你的服务器公网IP。这样,mail.yourcompany.com就能解析到你的服务器。 - MX记录:这是“邮件交换记录”,是电子邮件系统的寻址指南。它告诉全世界的发件人:“发送给
@yourcompany.com的邮件,请投递到哪台服务器”。你需要创建一条MX记录:主机名通常留空或填@(代表根域名),记录值填写mail.yourcompany.com.(注意最后的点),优先级一般设为10。 - TXT记录(SPF):这是一种反垃圾邮件策略,用来声明“哪些IP地址有权利用
yourcompany.com的名义发送邮件”。如果没有SPF,你的邮件很容易被收件方当作垃圾邮件拒收。添加一条TXT记录,主机名留空或填@,记录值类似:v=spf1 mx ~all。这条记录的意思是:“允许我域名MX记录指向的服务器(也就是我自己)发信,其他所有来源都软拒绝(~all)”。如果你后续需要使用第三方邮件营销服务,还需要把他们的IP加进来。 - TXT记录(DKIM):这是更高级的“电子签名”,为每封外发邮件加上一个加密签名,接收方可以用你公布的公钥来验证这封信确实是你发的,且中途没有被篡改。DKIM的配置稍复杂,需要在服务器上安装
opendkim工具生成公私钥对,然后将公钥(一串很长的文本)以TXT记录的形式发布到DNS。主机名格式通常为selector._domainkey.yourcompany.com,其中selector是你自定义的标识符(如default或2024)。
DNS记录生效需要时间,全球同步可能需要几分钟到几小时。在开始搭建服务器软件前,最好先用在线工具(如 dig、nslookup 或 mxtoolbox.com)检查一下你的A记录和MX记录是否已经正确解析。准备工作看似繁琐,但就像盖房子打地基,这一步稳了,后面的砖才能砌得牢。
3. 搭建基石:安装与初始配置
好了,域名和服务器都准备好了,现在我们可以登录到你的Ubuntu服务器,开始真正的搭建之旅了。我习惯使用 root 用户或者通过 sudo 来执行所有命令,确保有足够的权限。
首先,让我们把系统更新到最新状态,并安装所有必需的软件包。这里我们选择的组合是:Postfix 作为邮件传输代理(MTA),负责收发邮件;Dovecot 作为IMAP/POP3服务器,让用户能用邮件客户端(如Outlook、手机邮件App)取信;MySQL 用来集中存储用户账号和密码;最后,我们装上 Roundcube,一个用PHP写的、界面友好的Webmail,让你能通过浏览器登录邮箱。
# 更新软件源列表并升级所有已安装的包
sudo apt update && sudo apt upgrade -y
# 安装核心组件
sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql \
mysql-server apache2 \
php libapache2-mod-php php-mysql php-json php-mbstring php-xml php-intl php-zip \
-y
# 安装Roundcube Webmail
sudo apt install roundcube roundcube-core roundcube-mysql roundcube-plugins -y
在安装 Postfix 的过程中,会弹出一个蓝色的配置窗口,这是第一个关键选择。这里我们选择 “Internet Site”,然后下一步会问你“System mail name”,这里就填入你的完整域名,比如 yourcompany.com。这个设置决定了你服务器默认的邮件域名。
安装完成后,我们可以快速验证一下核心组件是否就位:
postfix --version # 应该输出类似 3.6.4 的版本号
dovecot --version # 应该输出类似 2.3.16 的版本号
mysql --version # 检查MySQL是否安装成功
接下来配置MySQL数据库。我们将创建一个专门的数据库来管理邮件用户。用 sudo mysql -u root 命令进入MySQL命令行。在MySQL里,我们一步步执行:


519

被折叠的 条评论
为什么被折叠?



