# foxiba_email **Repository Path**: YYandYY_admin/foxiba_email ## Basic Information - **Project Name**: foxiba_email - **Description**: 自用的邮件服务器 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-05 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Foxiba Email Server 一款基于Linux操作系统的高性能邮件服务器应用程序,支持SMTP、POP3、IMAP协议,提供Web管理界面和完整的管理功能。 ## 核心功能 ### 1. 简单高效 - 精简的系统架构设计,资源占用率低 - 邮件处理响应时间不超过3秒 - 支持至少50个并发连接 ### 2. 易安装部署 - 自动化安装脚本,支持主流Linux发行版 - 安装过程在30分钟内完成 - 清晰的安装日志和错误提示 ### 3. 安全可靠 - 支持SMTP、POP3、IMAP协议的安全版本(SMTPS/IMAPS/POP3S) - TLS 1.2+加密 - 集成SPF、DKIM、DMARC反垃圾邮件机制 - 完善的用户权限管理系统 ### 4. 易用性 - 基于Web的管理界面 - 支持邮件账户创建/删除/修改 - 邮件流量监控 - 系统状态查看 - 界面响应时间不超过2秒 ### 5. 第三方登录支持 - 集成OAuth 2.0/OpenID Connect协议 - 支持Google、Microsoft等主流第三方登录服务 - 实现单点登录功能 ### 6. 兼容性 - 兼容主流邮件客户端(Outlook、Thunderbird、Apple Mail等) - 支持标准邮件格式(MIME) - 支持最大50MB附件处理 ### 7. 可维护性 - 完善的日志系统,支持日志分级(INFO/WARN/ERROR) - 系统备份与恢复功能 - 命令行管理工具 ## 技术栈 - **开发语言**: Go 1.20+ - **Web框架**: Gin - **数据库**: MySQL - **ORM**: GORM - **认证**: JWT + OAuth 2.0 - **Web服务器**: Nginx - **SSL证书**: Let's Encrypt ## 系统架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 客户端层 │ ├─────────┬─────────┬─────────┬─────────────────┬─────────────────┤ │ Outlook │ Thunder │ Apple │ Web浏览器 │ 命令行工具 │ │ │ bird │ Mail │ │ │ └─────────┴─────────┴─────────┴─────────────────┴─────────────────┘ │ ┌─────────────────────────────┼─────────────────────────────────────┐ │ 协议层 │ ├─────────┬─────────┬─────────┬─────────────────┬─────────────────┤ │ SMTP │ SMTPS │ POP3 │ POP3S │ IMAP/IMAPS │ └─────────┴─────────┴─────────┴─────────────────┴─────────────────┘ │ ┌─────────────────────────────┼─────────────────────────────────────┐ │ 应用层 │ ├─────────┬─────────┬─────────┬─────────────────┬─────────────────┤ │ SMTP │ POP3 │ IMAP │ Web管理界面 │ 命令行工具 │ │ 服务 │ 服务 │ 服务 │ │ │ └─────────┴─────────┴─────────┴─────────────────┴─────────────────┘ │ ┌─────────────────────────────┼─────────────────────────────────────┐ │ 数据层 │ ├─────────┬─────────┬─────────────────────────────────────────────┤ │ MySQL │ 文件 │ Redis (可选,用于缓存) │ │ 数据库 │ 存储 │ │ └─────────┴─────────┴─────────────────────────────────────────────┘ ``` ## 目录结构 ``` foxiba-email/ ├── main.go # 程序入口 ├── go.mod # Go模块依赖 ├── go.sum # 依赖校验和 ├── install.sh # 自动化安装脚本 ├── .env.example # 环境变量示例 ├── README.md # 项目说明文档 ├── config/ # 配置管理 │ └── config.go ├── db/ # 数据库连接 │ └── db.go ├── models/ # 数据模型 │ └── user.go ├── auth/ # 认证管理 │ └── auth.go ├── smtp/ # SMTP服务实现 │ └── server.go ├── pop3/ # POP3服务实现 │ └── server.go ├── imap/ # IMAP服务实现 │ └── server.go └── web/ # Web管理界面 └── server.go ``` ## 安装部署 ### 1. 系统要求 - Linux发行版: Ubuntu 20.04+, CentOS 8+, Debian 10+ - CPU: 至少2核 - 内存: 至少4GB - 磁盘: 至少50GB可用空间 - 网络: 稳定的网络连接,开放必要端口 ### 2. Docker安装(推荐) 使用Docker Compose可以快速部署Foxiba Email Server,避免复杂的依赖安装和配置。 #### 2.1 前提条件 - 安装Docker:https://docs.docker.com/get-docker/ - 安装Docker Compose:https://docs.docker.com/compose/install/ #### 2.2 部署步骤 ```bash # 1. 克隆代码库 cd /opt git clone https://gitee.com/YYandYY_admin/foxiba_email.git cd foxiba-email # 2. 启动服务 docker-compose up -d ``` Docker Compose将自动完成以下操作: - 拉取MySQL 8.0镜像 - 构建Foxiba Email Server镜像 - 创建并启动MySQL容器 - 初始化数据库(创建表和默认管理员账户) - 创建并启动邮件服务器容器 - 配置网络和端口映射 #### 2.3 访问服务 - **Web管理界面**: http://服务器IP:8080 - **默认管理员账户**: admin@example.com / admin123 #### 2.4 Docker命令 ```bash # 查看容器状态 docker-compose ps # 查看日志 docker-compose logs -f # 停止服务 docker-compose down # 重启服务 docker-compose restart ``` ### 3. 自动安装 ```bash # 1. 克隆代码库 cd /opt <<<<<<< HEAD git clone https://gitee.com/YYandYY_admin/foxiba_email.git ======= git clone https://github.com/yourusername/foxiba-email.git >>>>>>> 762c805ffaf5eefd68cbbdf7f41b2225091416a2 cd foxiba-email # 2. 赋予脚本执行权限 chmod +x install.sh # 3. 运行安装脚本 ./install.sh ``` 安装脚本将自动完成以下操作: - 检测Linux发行版 - 安装必要依赖 - 配置MySQL数据库 - 编译和安装Foxiba Email Server - 配置Nginx反向代理 - 申请和配置SSL证书 ### 4. 手动安装 #### 4.1 安装依赖 ```bash # Ubuntu/Debian apt update apt install -y golang mysql-server nginx certbot git # CentOS dnf install -y golang mysql-server nginx certbot git ``` #### 4.2 配置MySQL ```bash # 启动MySQL服务 systemctl start mysql # 或 CentOS: systemctl start mysqld # 配置MySQL密码和创建数据库 mysql -u root -p CREATE DATABASE foxiba_email; CREATE USER 'foxiba'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON foxiba_email.* TO 'foxiba'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` #### 4.3 编译和运行 ```bash # 克隆代码库 cd /opt <<<<<<< HEAD git clone https://gitee.com/YYandYY_admin/foxiba_email.git ======= git clone https://github.com/yourusername/foxiba-email.git >>>>>>> 762c805ffaf5eefd68cbbdf7f41b2225091416a2 cd foxiba-email # 下载依赖 go mod download # 编译 go build -o foxiba-email main.go # 创建环境变量文件 cp .env.example .env # 编辑.env文件,配置数据库连接等参数 vim .env # 启动服务 ./foxiba-email ``` #### 4.4 配置Nginx ```bash # 创建Nginx配置文件 cat > /etc/nginx/conf.d/foxiba-email.conf << EOF server { listen 80; server_name mail.yourdomain.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } EOF # 测试配置 nginx -t # 重启Nginx systemctl restart nginx ``` #### 4.5 配置SSL证书 ```bash certbot --nginx -d mail.yourdomain.com ``` ## 配置说明 ### 环境变量配置 编辑 `.env` 文件,配置以下参数: ``` # SMTP配置 SMTP_HOST=0.0.0.0 SMTP_PORT=25 SMTP_TLS=false SMTP_CERT_FILE= SMTP_KEY_FILE= # POP3配置 POP3_HOST=0.0.0.0 POP3_PORT=110 POP3_TLS=false POP3_CERT_FILE= POP3_KEY_FILE= # IMAP配置 IMAP_HOST=0.0.0.0 IMAP_PORT=143 IMAP_TLS=false IMAP_CERT_FILE= IMAP_KEY_FILE= # Web配置 WEB_HOST=0.0.0.0 WEB_PORT=8080 # 数据库配置 DB_DSN=foxiba:password@tcp(localhost:3306)/foxiba_email?charset=utf8mb4&parseTime=True&loc=Local # 认证配置 AUTH_SECRET_KEY=your-secret-key-change-me # 日志配置 LOG_FILE=foxiba-email.log LOG_LEVEL=INFO # OAuth配置 GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GOOGLE_REDIRECT_URL=http://localhost:8080/auth/google/callback MICROSOFT_CLIENT_ID= MICROSOFT_CLIENT_SECRET= MICROSOFT_REDIRECT_URL=http://localhost:8080/auth/microsoft/callback ``` ## 使用说明 ### 1. 访问Web管理界面 安装完成后,通过浏览器访问 `https://mail.yourdomain.com` 进入Web管理界面。 ### 2. 创建管理员账户 首次访问时,系统会提示创建管理员账户。填写相关信息并提交。 ### 3. 添加域名 在管理界面中,导航到"域名管理",点击"添加域名",输入您的域名并保存。 ### 4. 配置DNS记录 根据系统提示,配置以下DNS记录: - **MX记录**: 将您的域名指向邮件服务器 - **SPF记录**: 配置Sender Policy Framework - **DKIM记录**: 配置DomainKeys Identified Mail - **DMARC记录**: 配置Domain-based Message Authentication, Reporting & Conformance ### 5. 创建邮件账户 在管理界面中,导航到"用户管理",点击"添加用户",填写相关信息并保存。 ### 6. 配置邮件客户端 使用您创建的邮件账户,在邮件客户端(如Outlook、Thunderbird)中配置邮件账户: - **IMAP服务器**: mail.yourdomain.com (端口993,SSL) - **SMTP服务器**: mail.yourdomain.com (端口465,SSL) - **用户名**: 您创建的用户名 - **密码**: 您设置的密码 ## 命令行工具 ```bash # 启动服务 ./foxiba-email # 停止服务 systemctl stop foxiba-email # 重启服务 systemctl restart foxiba-email # 查看服务状态 systemctl status foxiba-email # 查看日志 journalctl -u foxiba-email -f ``` ## 日志管理 日志文件默认保存在 `foxiba-email.log`,支持以下日志级别: - **INFO**: 常规操作信息 - **WARN**: 警告信息 - **ERROR**: 错误信息 ## 备份与恢复 ### 备份 ```bash # 备份数据库 mysqldump -u foxiba -p foxiba_email > backup.sql # 备份配置文件 cp .env backup.env ``` ### 恢复 ```bash # 恢复数据库 mysql -u foxiba -p foxiba_email < backup.sql # 恢复配置文件 cp backup.env .env ``` ## 安全建议 1. 定期更新系统和依赖包 2. 使用强密码策略 3. 启用防火墙,只开放必要端口 4. 定期备份数据 5. 监控系统日志,及时发现异常 6. 定期更换SSL证书 ## 故障排除 ### 1. 服务无法启动 检查日志文件: ```bash cat foxiba-email.log ``` ### 2. 邮件无法发送 - 检查SMTP服务是否正常运行 - 检查DNS记录是否正确配置 - 检查防火墙设置 ### 3. 无法访问Web管理界面 - 检查Nginx服务是否正常运行 - 检查SSL证书是否有效 - 检查防火墙设置 ## 开发说明 ### 项目结构 ``` ├── main.go # 程序入口,启动各个服务 ├── config/ # 配置管理 ├── db/ # 数据库连接 ├── models/ # 数据模型 ├── auth/ # 认证管理 ├── smtp/ # SMTP服务实现 ├── pop3/ # POP3服务实现 ├── imap/ # IMAP服务实现 └── web/ # Web管理界面 ``` ### 编译开发版本 ```bash go build -o foxiba-email-dev main.go ``` ### 运行测试 ```bash go test ./... ``` ## 版本历史 - **v1.0.0**: 初始版本,支持基本的SMTP、POP3、IMAP功能和Web管理界面 ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 - 项目地址: https://github.com/yourusername/foxiba-email - 问题反馈: https://github.com/yourusername/foxiba-email/issues