网宝
新闻中心 / / 正文

Postfix + Dovecot完整教程

2026-04-10 17:29
技术部
← 返回

 

前言

企业邮件是每家公司的基础设施之一。yourname@yourcompany.com 这样的专属域名邮箱,相比免费邮箱,在商务沟通中更专业、更可信。

企业邮件方案主要有两种路径:

方案A:使用第三方企业邮件服务(Google Workspace、腾讯企业邮、网易企业邮等)

  • 优点:开箱即用,不需要维护服务器
  • 缺点:月租费用持续累积,大团队成本高;邮件数据存储在第三方

方案B:在自己的服务器上搭建邮件系统

  • 优点:完全掌控数据,无限账号,边际成本接近零
  • 缺点:需要一定技术能力维护

本文专注于方案B,在香港服务器上搭建基于Postfix(发信)+ Dovecot(收信)的企业邮件系统,适合技术型团队或对数据隐私有要求的企业。


一、搭建企业邮件系统前的准备工作

为什么选择香港服务器搭建邮件系统?

香港服务器搭建邮件系统有几个独特优势:

  • IP信誉好:香港IP在国际邮件服务商(Gmail、Outlook)中信誉较好,邮件进入垃圾箱的概率低
  • 网络畅通:可以正常访问Gmail、Outlook等海外邮件服务,发信不受限制
  • 延迟低:国内团队管理后台响应快

必要条件清单

开始之前,确认以下条件已满足:

  • 拥有一台香港服务器(至少2核2G,独立IP)
  • 拥有一个域名(如 yourcompany.com
  • 服务器的25端口(SMTP)未被封锁(部分IDC默认封锁25端口,需提前确认或申请开放)
  • 已完成基础服务器配置(参考Linux服务器新手入门篇)

确认25端口是否开放:

 
 
bash
# 在服务器上执行,测试是否能连接到Gmail的SMTP服务器
telnet aspmx.l.google.com 25

如果显示"Connected",说明25端口正常。如果连接超时,需要联系网宝技术支持申请开放25端口。

确认服务器主机名

邮件系统需要正确配置服务器主机名(FQDN):

 
 
bash
# 查看当前主机名
hostname
hostname -f

# 设置主机名(替换为你的实际域名)
hostnamectl set-hostname mail.yourcompany.com

# 在/etc/hosts中添加
echo "服务器IP mail.yourcompany.com mail" >> /etc/hosts

二、DNS记录配置(最重要的一步)

邮件系统的DNS配置是决定邮件能否送达的关键,必须在安装软件之前配置好。

必须配置的DNS记录

在你的域名DNS管理面板(Cloudflare等)添加以下记录:

① A记录(邮件服务器域名)

 
 
类型:A
名称:mail
值:服务器IP
TTL:300

② MX记录(邮件交换记录)

 
 
类型:MX
名称:@(或根域名)
值:mail.yourcompany.com
优先级:10
TTL:300

③ SPF记录(防止邮件伪造)

 
 
类型:TXT
名称:@
值:v=spf1 ip4:服务器IP mx ~all
TTL:300

④ DMARC记录(邮件认证策略)

 
 
类型:TXT
名称:_dmarc
值:v=DMARC1; p=none; rua=mailto:admin@yourcompany.com
TTL:300

⑤ PTR记录(反向DNS,非常重要)

PTR记录需要在服务器IP的管理方配置,即联系网宝技术支持,申请将服务器IP的反向DNS解析设置为 mail.yourcompany.com

PTR记录缺失是导致邮件被标记为垃圾邮件最常见的原因之一。


三、安装Postfix(发信服务器)

安装

 
 
bash
# Ubuntu 22.04
apt update
apt install postfix -y

# 安装过程中选择:
# General type:Internet Site
# System mail name:mail.yourcompany.com

# CentOS 7
yum install postfix -y

基础配置

编辑主配置文件:

 
 
bash
vi /etc/postfix/main.cf

添加或修改以下配置:

 
 
ini
# 服务器主机名
myhostname = mail.yourcompany.com

# 邮件域名
mydomain = yourcompany.com

# 允许接收邮件的域名
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 本地网络
mynetworks = 127.0.0.0/8

# 邮件队列存储位置
home_mailbox = Maildir/

# 邮件大小限制(50MB)
message_size_limit = 52428800

# SMTP认证(需要SASL)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

# 接收限制
smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination

# SSL/TLS配置(证书路径在后续步骤获取)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.yourcompany.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.yourcompany.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may

四、安装Dovecot(收信服务器)

Dovecot负责处理IMAP/POP3协议,让邮件客户端(Outlook、Thunderbird、苹果邮件等)能够收取邮件。

 
 
bash
# Ubuntu
apt install dovecot-core dovecot-imapd dovecot-pop3d -y

# CentOS
yum install dovecot -y

配置Dovecot

 
 
bash
vi /etc/dovecot/dovecot.conf
 
 
ini
# 启用协议
protocols = imap pop3 lmtp

# 监听所有网络接口
listen = *
 
 
bash
vi /etc/dovecot/conf.d/10-mail.conf
 
 
ini
# 邮件存储位置(与Postfix保持一致)
mail_location = maildir:~/Maildir
 
 
bash
vi /etc/dovecot/conf.d/10-auth.conf
 
 
ini
# 允许明文密码(在TLS加密下)
disable_plaintext_auth = yes
auth_mechanisms = plain login
 
 
bash
vi /etc/dovecot/conf.d/10-ssl.conf
 
 
ini
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.yourcompany.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.yourcompany.com/privkey.pem

五、申请SSL证书

邮件传输必须加密,使用Let's Encrypt免费SSL证书:

 
 
bash
# 安装certbot
apt install certbot -y   # Ubuntu
yum install certbot -y   # CentOS

# 申请证书(确保80端口未被占用)
certbot certonly --standalone -d mail.yourcompany.com

# 证书保存在:
# /etc/letsencrypt/live/mail.yourcompany.com/fullchain.pem
# /etc/letsencrypt/live/mail.yourcompany.com/privkey.pem

# 设置证书自动续期
echo "0 0 1 * * certbot renew --quiet && systemctl restart postfix dovecot" | crontab -

六、配置DKIM(邮件签名,提高送达率)

DKIM为每封邮件添加数字签名,接收方验证签名确认邮件来源,大幅提高邮件信誉度和送达率。

QQ客服 提交工单