豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 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 方案 吗?

Ai作答

📣 商家广告


广告招商

起名

广告招商

店名

月饼


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》搭建本站。

上一篇 38446 38447 38448 下一篇