# sendmail **Repository Path**: xuzhaopeng/sendmail ## Basic Information - **Project Name**: sendmail - **Description**: 本项目是为方便工作撰写的一个基于 JavaFX 的批量邮件发送工具,支持批量发送邮件并管理收件人列表。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目架构文档 ## 1. 项目概述 本项目是一个基于 JavaFX 的邮件发送工具,支持批量发送邮件并管理收件人列表。 ## 2. 技术栈 - **语言**: Java 11 - **框架**: JavaFX - **构建工具**: Maven - **日志**: Log4j2 - **邮件协议**: SMTP (通过 JavaMail API) - **模板引擎**: FreeMarker ## 3. 项目结构 ### 3.1 目录结构 ``` sendmail/ ├── config/ # 配置文件 │ ├── project.json # 项目配置 │ ├── receiver.json # 收件人列表 │ ├── smtp.properties # SMTP 配置 │ ├── attachment/ # 附件 │ └── templates/ # 邮件模板 ├── src/ │ ├── main/ │ │ ├── java/ # 主代码 │ │ │ ├── com/example/ # 核心模块 │ │ │ │ ├── Controller/ # 控制器 │ │ │ │ │ ├── ConfigController.java # 配置控制器 │ │ │ │ │ ├── MainController.java # 主控制器 │ │ │ │ │ ├── Step2Controller.java # 步骤2控制器 │ │ │ │ │ └── Menu/ # 菜单模块 │ │ │ │ │ ├── MenuController.java # 菜单控制器 │ │ │ │ │ ├── MenuItemController.java # 菜单项控制器 │ │ │ │ │ └── MenuModel.java # 菜单数据模型 │ │ │ │ ├── model/ # 数据模型 │ │ │ │ ├── util/ # 工具类 │ │ │ │ └── Launcher.java # 主程序入口 │ │ │ └── module-info.java │ │ └── resources/ # 资源文件 │ │ └── com/example/ # FXML 界面文件 │ └── test/ # 测试代码 ├── pom.xml # Maven 配置 └── README.md # 项目说明 ``` ### 3.2 核心模块 - **Controller**: 处理用户界面逻辑,如 `ConfigController`、`Step1Controller`、`Step2Controller`。 - 路径: `src/main/java/com/example/controller/` - **Model**: 数据模型,如 `Project`、`Receiver`、`ReceiverList`。 - **Util**: 工具类,如 `EmailSender`、`ConfigLoader`、`FreeMarkerUtil`。 ## 4. 核心功能 1. **SMTP 配置管理**: 通过 `ConfigController` 配置 SMTP 服务器信息。 2. **批量邮件发送**: 使用 `EmailSender` 类实现邮件发送功能。 3. **收件人管理**: 通过 `Receiver` 和 `ReceiverList` 管理收件人列表。 4. **模板支持**: 使用 FreeMarker 模板引擎生成邮件内容。 5. **附件支持**: 支持添加附件到邮件中。 ## 5. 依赖关系 - **JavaFX**: 提供用户界面支持。 - **JavaMail**: 实现邮件发送功能。 - **Log4j2**: 日志记录。 - **FreeMarker**: 模板引擎。 ## 6. 使用方法 1. 修改 config/smtp.properties 2. 安装javafx库 [JavaFX](https://gluonhq.com/products/javafx/) 3. 构建运行 `java --module-path /Users/peng/bin/javafx/lib/ --add-modules javafx.controls,javafx.graphics,javafx.fxml -jar sendmail-1.0-jar-with-dependencies.jar` 4. 如需定制化修改,参考config/templates/zhengxun.ftl 5. 调试可通过 LauncherTest.java BulkEmailSender.java