🗣 Wd提问: 搭建邮箱服务器
🤖 Ai回答: 搭建邮箱服务器是一个相对复杂但可行的任务,适合有一定 Linux 系统和网络知识的用户。下面是一个基于开源软件的典型邮件服务器搭建方案,使用 Postfix(SMTP 服务器)+ Dovecot(IMAP/POP3 服务器)+ MariaDB(用户数据库)+ Roundcube(Web 邮箱界面)+ Let's Encrypt(SSL 证书),运行在 Ubuntu/Debian 系统上。
🧱 一、准备工作
1、系统要求
一台公网服务器(VPS),推荐 Ubuntu 22.04 LTS 或 Debian 12
固定公网 IP 地址
域名(如 `65.hk`),并能管理 DNS 记录
2、DNS 配置(关键!)
在域名 DNS 中添加以下记录:
| 类型 | 主机名 | 值 |
|
| A | mail | 你的服务器 IP |
| MX | @ | mail.65.hk(优先级 10)|
| TXT | @ | `v=spf1 mx -all`(SPF 记录)|
| TXT | _dmarc | `v=DMARC1; p=none; rua=mailto:admin@65.hk`(可选)|
| TXT | mail._domainkey | (DKIM 稍后生成)|
⚠️ 邮件服务器对 DNS 配置非常敏感,务必正确设置。
🛠️ 二、安装与配置
1、更新系统
bash
sudo apt update && sudo apt upgrade -y
2、安装必要软件
bash
sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-mysql mariadb-server nginx certbot python3-certbot-nginx roundcube roundcube-mysql
安装 Postfix 时选择 “Internet Site”,系统邮件名设为 `65.hk`
🗄️ 三、配置 MariaDB(数据库)
1、启动并加固 MariaDB
bash
sudo mysql_secure_installation
2、创建数据库和用户
sql
sudo mysql -u root -p
CREATE DATABASE mailserver;
GRANT ALL PRIVILEGES ON mailserver.* TO 'mailuser'@'localhost' IDENTIFIED BY '强密码';
FLUSH PRIVILEGES;
USE mailserver;
虚拟用户表
CREATE TABLE virtual_domains (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE virtual_users (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_id INT NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
);
CREATE TABLE virtual_aliases (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_id INT NOT NULL,
source VARCHAR(255) NOT NULL,
destination VARCHAR(255) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
);
插入域名
INSERT INTO virtual_domains (name) VALUES ('65.hk');
插入用户(密码用 dovecotpw 生成)
先退出 MySQL
3、生成加密密码(Dovecot 格式)
bash
doveadm pw -s SHA512-CRYPT
输入密码,得到类似 {SHA512-CRYPT}$6$...
然后回 MySQL 插入用户:
sql
INSERT INTO virtual_users (domain_id, email, password)
VALUES (1, 'user@65.hk', '{SHA512-CRYPT}$6$...');
📤 四、配置 Postfix(SMTP)
1、编辑主配置
bash
sudo nano /etc/postfix/main.cf
添加/修改以下内容:
ini
myhostname = mail.65.hk
mydomain = 65.hk
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = localhost
虚拟邮箱
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailboxes.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-aliases.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
安全设置
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.65.hk/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.65.hk/privkey.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
2、创建 MySQL 查询文件
bash
sudo nano /etc/postfix/mysql-virtual-domains.cf
ini
user = mailuser
password = 强密码
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
类似创建 `mysql-virtual-mailboxes.cf`:
sql
query = SELECT 1 FROM virtual_users WHERE email='%s'
和 `mysql-virtual-aliases.cf`:
sql
query = SELECT destination FROM virtual_aliases WHERE source='%s'
设置权限:
bash
sudo chmod 640 /etc/postfix/mysql-*.cf
sudo chgrp postfix /etc/postfix/mysql-*.cf
📥 五、配置 Dovecot(IMAP/POP3)
1、主配置
bash
sudo nano /etc/dovecot/dovecot.conf
确保包含:
ini
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
2、邮箱位置和认证
bash
sudo nano /etc/dovecot/conf.d/10-mail.conf
ini
mail_location = maildir:/var/mail/vhosts/%d/%n
创建目录:
bash
sudo mkdir -p /var/mail/vhosts/65.hk
sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /var/mail
sudo chown -R vmail:vmail /var/mail
3、配置认证(MySQL)
bash
sudo nano /etc/dovecot/conf.d/10-auth.conf
ini
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
编辑 `/etc/dovecot/conf.d/auth-sql.conf.ext`:
ini
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
创建 `/etc/dovecot/dovecot-sql.conf.ext`:
ini
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=强密码
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
设置权限:
bash
sudo chmod 640 /etc/dovecot/dovecot-sql.conf.ext
sudo chgrp dovecot /etc/dovecot/dovecot-sql.conf.ext
4、配置 LMTP(用于接收邮件)
bash
sudo nano /etc/dovecot/conf.d/10-master.conf
在 `service lmtp` 部分:
ini
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
在 `service auth` 部分:
ini
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
🔒 六、申请 SSL 证书(Let's Encrypt)
bash
sudo certbot nginx -d mail.65.hk
确保 80 和 443 端口开放,且 DNS 已生效。
🌐 七、配置 Roundcube(Web 邮箱)
1、访问 `http://your-server-ip/roundcube`,按提示配置数据库(使用之前创建的 `mailserver` 数据库)。
2、编辑配置文件 `/etc/roundcube/config.inc.php`:
php
$config['default_host'] = 'ssl://mail.65.hk';
$config['smtp_server'] = 'ssl://mail.65.hk';
$config['smtp_port'] = 465;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
3、设置 Nginx 反向代理(可选美化 URL):
nginx
server {
listen 443 ssl;
server_name mail.65.hk;
ssl_certificate /etc/letsencrypt/live/mail.65.hk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.65.hk/privkey.pem;
root /var/lib/roundcube;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
🧪 八、测试
1、重启服务:
bash
sudo systemctl restart postfix dovecot nginx mariadb
2、测试发送/接收:
使用 Thunderbird 或 Outlook 添加账户:`user@65.hk`,IMAP/SMTP 均为 `mail.65.hk`,端口 993/465,SSL/TLS。
或使用 Roundcube 网页登录。
3、检查日志:
bash
tail -f /var/log/mail.log
🛡️ 九、安全与维护建议
配置 Fail2ban 防暴力破解
定期更新系统和软件
启用 DKIM(使用 OpenDKIM)、DMARC 提高邮件可信度
监控磁盘空间和邮件队列
备份数据库和邮件目录
✅ 总结
搭建邮件服务器涉及多个组件协同工作,对网络、安全、DNS 要求较高。如果你只是个人使用,也可以考虑更简单的方案(如 Mail-in-a-Box、iRedMail 等一键部署工具)。但对于学习或企业自建需求,上述方案提供了高度可控性和灵活性。
需要我提供 自动化脚本 或 Docker 方案 吗?
📣 商家广告 :
👍
0
👎
IP地址: 100.100.201.198
搜索次数: 0
提问时间: 2025-10-31 11:10:06
🛒 域名购买 :
zhuang.net.cn 363.net.cn 97.gold dxgm.cn hc.gs s-x.com.cn 219.net.cn cgbc.cn 815.net.cn t-v.com.cn
❓️ 热门提问 :
机房降噪施工 网站优化排名 聚名交易域名 汕头服务器托管 马来西亚vps主机 关键词自动归档搜索引擎 ethernet/ip模块 啥是vps 户外一体化机柜结构 云上网络加速 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
vtol.sd.cn jamctr.com swwn.cn kk.ha.cn vi.cx xiaomi.com Fangbao.net kowr.cn su8.he.cn fyhm.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
香港vps服务器
网站搜索引擎入口
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。