下面给你一个从零开始在 Debian 上搭建邮件服务器的实用指南,涵盖基础组件、安装步骤、关键配置和安全建议。我会以 Postfix + Dovecot + MariaDB(可选)+ Let’s Encrypt 为例,这是目前最主流、稳定的方案。
example.com)假设域名:example.com,邮件服务器:mail.example.com
A mail.example.com -> 你的服务器IP
MX example.com -> mail.example.com (优先级 10)
TXT example.com -> v=spf1 mx ~all
TXT _dmarc.example.com -> v=DMARC1; p=none
(DKIM 和 PTR 后面配置)
sudo apt update
sudo apt install -y \
postfix \
dovecot-core dovecot-imapd dovecot-pop3d \
mariadb-server \
postfix-mysql \
dovecot-mysql \
certbot \
ufw
安装 Postfix 时:
example.com编辑:
sudo nano /etc/postfix/main.cf
关键配置示例:
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = localhost
# 虚拟邮箱
virtual_mailbox_domains = example.com
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
# TLS
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
# SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
sudo nano /etc/dovecot/dovecot.conf
确保:
protocols = imap pop3 lmtp
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/mail/vhosts/%d/%n
sudo nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
!include auth-sql.conf.ext
sudo nano /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
CREATE DATABASE mailserver;
CREATE USER 'mailuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON mailserver.* TO 'mailuser'@'localhost';
USE mailserver;
CREATE TABLE virtual_domains (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE virtual_users (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_id INT,
email VARCHAR(100),
password VARCHAR(100)
);
sudo certbot certonly --standalone -d mail.example.com
自动续期:
sudo systemctl enable certbot.timer
sudo ufw allow 25,465,587,143,993,110,995/tcp
sudo apt install opendkim opendkim-tools
确保 Postfix:
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
telnet mail.example.com 25
或用邮件客户端:
mail.example.commail.example.com:587❌ 没有 PTR 反向解析 → 邮件进垃圾箱
❌ 没配置 SPF / DKIM / DMARC
❌ 使用 25 端口发信被运营商封
❌ 密码明文存储
如果你愿意,我可以: ✅ 给你 一步一步命令版 ✅ 帮你 写完整 SQL + Postfix 配置 ✅ 教你 用 Docker 搭 Mailcow ✅ 针对 个人 / 企业 / 内网 给方案
你打算用在什么场景?