一个完全独立的Python邮件服务器系统,内置SMTP/IMAP服务器,所有邮件存储在本地,完全私有化部署。
pip install -r requirements.txt
python app.py
http://localhost:5000
默认账号:
adminadmin123登录后进入控制台,点击"添加域名",输入您的域名(如:example.com)
系统会自动生成MX记录:mail.example.com
在您的域名DNS管理中添加以下记录:
类型:A 名称:mail 记录值:您的服务器IP地址 类型:MX 名称:@ 记录值:mail.example.com 优先级:10 类型:TXT 名称:@ 记录值:"v=spf1 mx -all"
点击"创建邮箱",输入邮箱地址和密码
例如:
在Outlook、Thunderbird等邮件客户端中配置:
SMTP(发送)
IMAP(接收)
| 服务 | 服务器地址 | 端口 | 说明 |
|---|---|---|---|
| SMTP (标准) | smtp.yourdomain.com | 25 | 标准SMTP端口 |
| SMTP (TLS) | smtp.yourdomain.com | 587 | STARTTLS加密 |
| IMAP (标准) | imap.yourdomain.com | 143 | 标准IMAP端口 |
| IMAP (SSL) | imap.yourdomain.com | 993 | SSL加密连接 |
| Web管理 | - | 5000 | Web管理界面 |
/workspace/ ├── app.py # 主应用文件(Flask + SMTP服务器) ├── imapserver.py # IMAP服务器实现 ├── requirements.txt # Python依赖 ├── mailserver.db # SQLite数据库(自动生成) └── templates/ # HTML模板 ├── base.html # 基础模板 ├── login.html # 登录页 ├── register.html # 注册页 ├── dashboard.html # 控制台 ├── compose.html # 写邮件 ├── inbox.html # 收件箱 ├── sent.html # 已发送 ├── view_email.html # 查看邮件 └── server_status.html # 服务器状态
修改默认密码
使用HTTPS
防火墙配置
# 开放SMTP端口
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
# 开放IMAP端口
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp
# 开放Web端口
sudo ufw allow 5000/tcp
定期备份
# 备份数据库
cp mailserver.db mailserver.db.backup
用户表 - 存储系统用户
域名表 - 存储用户的域名配置
邮箱账户表 - 存储邮箱账户信息
邮件表 - 存储所有邮件内容
本服务器兼容所有支持标准SMTP/IMAP协议的邮件客户端:
A: 检查以下几点:
A: 检查以下几点:
A: 修改app.py中的端口配置:
SMTP_PORT = 2525 # 改为其他端口
SMTP_TLS_PORT = 587
IMAP_PORT = 1143
A: 建议使用:
创建 /etc/systemd/system/mailserver.service:
[Unit]
Description=Private Mail Server
After=network.target
[Service]
Type=simple
User=youruser
WorkingDirectory=/path/to/mailserver
ExecStart=/usr/bin/python3 /path/to/mailserver/app.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl start mailserver
sudo systemctl enable mailserver
server { listen 80; server_name mail.yourdomain.com; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
如有问题,请提交Issue或查看项目文档。
MIT License
注意: 这是一个开源项目,仅用于学习和个人使用。在生产环境中使用前请确保进行充分测试和安全加固。