初始化提交,包含完整的邮件系统代码

This commit is contained in:
huangzhenpc
2025-02-25 19:50:00 +08:00
commit aeffc4f8b8
52 changed files with 6673 additions and 0 deletions

181
DNS_CONFIGURATION.md Normal file
View File

@@ -0,0 +1,181 @@
# 邮箱系统DNS配置指南
为使邮箱系统能够接收来自外部的邮件必须正确配置DNS记录。本文档详细说明了配置过程。
## 必要的DNS记录
### MX记录必须
MXMail Exchange记录指定接收域名邮件的服务器。您需要为每个要接收邮件的域名添加MX记录。
| 记录类型 | 主机记录 | 优先级 | 记录值 |
|---------|---------|-------|--------|
| MX | @ | 10 | mail.yourdomain.com |
* `@`表示针对域名本身(如`yourdomain.com`
* `优先级`数字越小表示优先级越高如果有多个MX记录邮件将首先尝试发送到优先级最高的服务器
* `记录值`应指向您的邮件服务器的主机名
### A记录必须
A记录将主机名映射到IPv4地址。您需要创建一个A记录将MX记录中使用的主机名指向您的服务器IP。
| 记录类型 | 主机记录 | 记录值 |
|---------|---------|-------|
| A | mail | 203.0.113.1 |
* `主机记录`应为MX记录中使用的主机名的前缀如果MX记录值为`mail.yourdomain.com`,则主机记录为`mail`
* `记录值`是您服务器的公网IP地址
### SPF记录推荐
SPFSender Policy Framework记录用于防止邮件欺诈指定哪些服务器被授权发送来自您域名的邮件。
| 记录类型 | 主机记录 | 记录值 |
|---------|---------|-------|
| TXT | @ | v=spf1 ip4:203.0.113.1 -all |
* `v=spf1`表示这是SPF记录的版本1
* `ip4:203.0.113.1`授权您服务器的IP地址发送邮件
* `-all`表示严格模式,任何不匹配的发件人都会被拒绝
### PTR记录重要
PTR反向DNS记录用于将IP地址映射回主机名许多邮件服务器会检查这个记录来验证发件人。
**注意:** PTR记录通常由您的ISP或云服务提供商配置需要联系他们进行设置。
请求他们将您的IP地址(如`203.0.113.1`)的PTR记录设置为您的邮件服务器域名(如`mail.yourdomain.com`)。
## 配置步骤
### 1. 登录DNS管理面板
使用您的域名注册商提供的管理面板或DNS服务提供商的控制台登录。
常见的DNS管理面板包括:
- Cloudflare
- GoDaddy
- NameCheap
- 阿里云
- 腾讯云
### 2. 添加MX记录
1. 找到DNS记录管理界面
2. 选择添加新记录
3. 记录类型选择"MX"
4. 主机记录填写"@"
5. 优先级填写"10"
6. 记录值填写指向您服务器的域名,如"mail.yourdomain.com"
7. TTL可以保持默认值或设置为3600(1小时)
8. 保存记录
### 3. 添加A记录
1. 再次选择添加新记录
2. 记录类型选择"A"
3. 主机记录填写"mail"或您在MX记录中使用的子域名
4. 记录值填写您服务器的公网IP地址
5. TTL可以保持默认值或设置为3600
6. 保存记录
### 4. 添加SPF记录
1. 再次选择添加新记录
2. 记录类型选择"TXT"
3. 主机记录填写"@"
4. 记录值填写`v=spf1 ip4:YOUR_SERVER_IP -all`替换YOUR_SERVER_IP为您的服务器IP
5. TTL可以保持默认值或设置为3600
6. 保存记录
## 验证配置
### 1. 验证MX记录
使用dig命令查询MX记录:
```bash
dig MX yourdomain.com
```
预期输出应包含您配置的MX记录:
```
yourdomain.com. 3600 IN MX 10 mail.yourdomain.com.
```
### 2. 验证A记录
```bash
dig A mail.yourdomain.com
```
预期输出应显示您服务器的IP:
```
mail.yourdomain.com. 3600 IN A 203.0.113.1
```
### 3. 验证SPF记录
```bash
dig TXT yourdomain.com
```
预期输出应包含您的SPF记录:
```
yourdomain.com. 3600 IN TXT "v=spf1 ip4:203.0.113.1 -all"
```
### 4. 验证PTR记录
```bash
dig -x YOUR_SERVER_IP
```
预期输出应将您的IP解析为您的服务器域名:
```
1.113.0.203.in-addr.arpa. 3600 IN PTR mail.yourdomain.com.
```
## 故障排除
### 记录未生效
DNS更改可能需要24-48小时在全球范围内完全生效。如果刚刚更改了记录可能需要等待一段时间才能看到效果。
可以使用不同的DNS查询工具检查传播状态:
- https://www.whatsmydns.net/
- https://dnschecker.org/
### 邮件被退回
如果邮件被接收方拒绝,可能的原因包括:
1. **没有正确的PTR记录**: 许多服务器(如Gmail)要求有匹配的PTR记录
2. **SPF记录配置错误**: 检查SPF记录语法是否正确
3. **服务器IP被列入黑名单**: 使用 https://mxtoolbox.com/blacklists.aspx 检查
### 验证综合邮件配置
使用MX Toolbox等工具进行综合检查:
https://mxtoolbox.com/SuperTool.aspx
## 多域名配置
要为系统中的每个域名都接收邮件需要为每个域名单独配置MX记录但都指向相同的邮件服务器。例如:
对于domain1.com:
```
domain1.com. MX 10 mail.yourdomain.com.
```
对于domain2.com:
```
domain2.com. MX 10 mail.yourdomain.com.
```
这样所有配置的域名收到的邮件都会被发送到同一个服务器进行处理。