凌峰创科服务平台

Postfix邮件服务器如何快速搭建与配置?

  1. Postfix 是什么? - 核心概念介绍
  2. 系统环境准备 - 硬件、域名、DNS 配置等前置要求
  3. 安装与基础配置 - Postfix 的安装和核心参数设置
  4. 虚拟用户与虚拟域配置 - 实现多域名、多用户邮箱
  5. 安全加固 - 防止垃圾邮件和滥用
  6. 客户端连接(SMTP/IMAP/POP3) - 使用邮件客户端收发邮件
  7. 测试与排错 - 如何验证服务器是否正常工作
  8. 进阶主题 - 反垃圾邮件、Webmail 等

Postfix 是什么?

  • 邮件传输代理:你可以把它想象成邮件系统的“邮局”,它不负责你阅读邮件(那是邮件投递代理/MDA 的工作,如 Dovecot),也不负责你撰写邮件(那是邮件用户代理/MUA 的工作,如 Thunderbird, Outlook),它的核心任务是接收、路由和投递邮件
  • 与 Sendmail 的对比:Postfix 是 Sendmail 的现代化替代品,它设计更安全,配置更清晰,性能更好,并且是模块化设计的,更容易维护。
  • 工作流程
    1. 其他邮件服务器将邮件发送到你的 Postfix 服务器(SMTP 协议)。
    2. Postfix 接收邮件,检查收件人地址。
    3. 如果收件人是本地用户,Postfix 将邮件投递到本地邮箱文件或交给 Dovecot 等处理。
    4. 如果收件人是远程用户,Postfix 会查询 DNS(MX 记录),找到目标邮件服务器,然后将邮件转发过去。

系统环境准备(这是最关键的一步!)

在安装 Postfix 之前,你必须准备好以下环境,否则邮件服务器将无法正常工作。

Postfix邮件服务器如何快速搭建与配置?-图1
(图片来源网络,侵删)

a. 域名

你需要拥有一个公网域名my-mail-server.com,所有邮件地址都将基于这个域名,如 user@my-mail-server.com

b. 服务器

  • 一台运行主流 Linux 发行版(如 Ubuntu/Debian, CentOS/RHEL)的云服务器VPS
  • 静态公网 IP 地址
  • 足够的系统资源:建议至少 1GB 内存和 20GB 硬盘空间。
  • 确保防火墙(如 ufwfirewalld)和 SELinux(如果使用)已正确配置,允许邮件相关端口通信。

c. DNS 记录配置

在你的域名注册商处,必须添加以下 DNS 记录,这是邮件服务器能被世界找到和信任的基础。

  1. A 记录

    • mail.my-mail-server.com. IN A 你的服务器公网IP
    • 将你的邮件服务器主机名 mail 解析到服务器的 IP 地址。
  2. MX 记录 (Mail Exchanger)

    Postfix邮件服务器如何快速搭建与配置?-图2
    (图片来源网络,侵删)
    • my-mail-server.com. IN MX 10 mail.my-mail-server.com.
    • 告诉世界,发送给 @my-mail-server.com 的邮件应该发送到 mail.my-mail-server.com 这个服务器。10 是优先级,数字越小优先级越高。
  3. PTR 记录 (Pointer Record / Reverse DNS)

    • 这个记录通常由你的 VPS/云服务商(如阿里云、腾讯云、AWS、DigitalOcean)在后台管理。
    • 它的作用是将你的服务器 IP 地址反向解析回你的主机名 mail.my-mail-server.com
    • 非常重要:PTR 记录不存在或与你的主机名不匹配,很多邮件服务器(尤其是 Gmail, Outlook)会直接拒绝你发送的邮件,认为你是垃圾邮件发送者。
  4. SPF 记录 (Sender Policy Framework)

    • my-mail-server.com. IN TXT "v=spf1 mx -all"
    • 声明哪些 IP 地址有权代表你的域名发送邮件。mx 表示只有你 MX 记录中指定的邮件服务器可以发送,-all 表示拒绝所有其他,这能有效防止他人伪造你的域名发送邮件。
  5. DKIM 记录 (DomainKeys Identified Mail)

    这是一个更高级的身份验证技术,你需要先安装和配置 OpenDKIM,然后它会生成一个公钥,你将这个公钥以 TXT 记录的形式添加到 DNS 中,邮件服务器收到你的邮件后,会用这个公钥验证邮件签名,确保邮件在传输过程中未被篡改。

    Postfix邮件服务器如何快速搭建与配置?-图3
    (图片来源网络,侵删)
  6. DMARC 记录 (Domain-based Message Authentication, Reporting & Conformance)

    • my-mail-server.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@my-mail-server.com"
    • 基于 SPF 和 DKIM 的结果,告诉接收方如何处理验证失败的邮件。p=quarantine 表示将邮件放入垃圾箱,p=reject 表示直接拒收。

没有正确的 DNS 记录,你的邮件服务器就是一座孤岛,发不出去也收不到。


安装与基础配置

本教程以 Ubuntu/Debian 为例,CentOS/RHEL 的包名和命令略有不同(yum/dnf 替代 apt)。

a. 安装 Postfix

sudo apt update
sudo apt install postfix

安装过程中会弹出一个配置向导,选择 "Internet Site",然后输入你的系统邮件域名(System mail name),my-mail-server.com,这个域名将用于生成本地的邮件地址(如 root@my-mail-server.com)。

b. 核心配置文件

Postfix 的主配置文件是 /etc/postfix/main.cf,让我们编辑它,进行基础设置。

sudo nano /etc/postfix/main.cf

需要修改或添加的关键参数:

# 1. 设置主机名和域名
myhostname = mail.my-mail-server.com
mydomain = my-mail-server.com
myorigin = $mydomain
# 2. 设置监听接口和端口
# 默认监听所有接口,这是正确的
inet_interfaces = all
inet_protocols = all # 强烈建议在 IPv6 环境下保持为 all,否则改为 ipv4
# 3. 设置信任的网络,默认只信任本地回环
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# 4. 设置邮件存储格式
home_mailbox = Maildir/
# Maildir/ 是更现代的格式,每个邮件一个文件,比传统的 mbox 格式更稳定,适合 Dovecot
# 5. 关闭不必要的服务
# 注释掉或禁用以下行,除非你明确需要
# mailbox_command =
# mailbox_size_limit =
# recipient_delimiter =

c. 重启 Postfix 服务

sudo systemctl restart postfix
sudo systemctl enable postfix # 开机自启

虚拟用户与虚拟域配置

默认情况下,Postfix 使用系统的 /etc/passwd 文件中的用户作为邮箱用户,但在生产环境中,我们通常需要为多个域名创建大量不拥有系统账户的邮箱用户,这时就需要“虚拟域”和“虚拟用户”功能。

a. 创建虚拟用户和密码文件

我们将使用 dovecot 的工具来管理虚拟用户,因为它可以同时处理 IMAP/POP3 认证。

  1. 安装 Dovecot (我们稍后会详细配置它)

    sudo apt install dovecot-imapd dovecot-pop3d dovecot-mysql # 如果用MySQL存储用户信息
  2. 创建虚拟用户数据库 我们使用 doveadmpw 工具来创建一个包含用户名和加密密码的文件。

    • 创建一个普通用户和组来运行邮件服务,增强安全性。

      sudo groupadd -g 5000 vmail
      sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m
    • 创建密码文件和数据库

      # 创建一个纯文本密码文件(仅用于创建数据库,创建后应删除)
      sudo doveadm pw -s SHA512-CRYPT -p 'your_strong_password_for_user1'
      # 会输出一串类似 {SHA512-CRYPT}$6$... 的哈希值,复制它
      # 创建虚拟用户映射文件
分享:
扫描分享到社交APP
上一篇
下一篇