# SMM_study **Repository Path**: mingline-smallme/smm_study ## Basic Information - **Project Name**: SMM_study - **Description**: 学习用仓库 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-04 - **Last Updated**: 2026-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 邮件自动化发送系统 一个基于Python的自动化邮件发送系统,支持定时爬取网页内容并发送邮件报告,集成AI内容润色功能。 ## 功能特性 - 🌐 **多URL爬取**: 支持同时爬取多个网页内容 - 🔄 **智能重试**: 爬取失败自动重试机制 - 📧 **邮件报告**: 自动生成并发送HTML格式邮件报告 - ⏰ **定时调度**: 基于cron表达式的灵活定时任务 - 🧠 **AI内容润色**: 集成大语言模型进行内容智能总结和润色(可选) - 🎛️ **灵活配置**: YAML格式配置文件,支持详细参数设置 - 📊 **详细日志**: 完整的操作日志记录 - 🔧 **多种模式**: 支持守护进程、单次运行、测试等多种运行模式 ## 项目结构 ``` email_automation/ ├── config/ │ ├── __init__.py # 配置模块初始化 │ ├── settings.py # 配置管理类 │ └── config.yaml # 主配置文件 ├── src/ │ ├── __init__.py # 源码模块初始化 │ ├── web_scraper.py # 网页爬取模块 │ ├── email_sender.py # 邮件发送模块 │ ├── scheduler.py # 定时任务调度器 │ └── ai_polisher.py # AI内容润色模块 ├── logs/ # 日志目录 ├── templates/ # 邮件模板目录 ├── main.py # 主程序入口 ├── requirements.txt # 依赖包列表 └── README.md # 项目说明文档 ``` ## 安装说明 ### 1. 环境要求 - Python 3.7+ - Chrome浏览器(用于动态网页爬取) - 邮件SMTP服务 ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 安装Chrome驱动 如果需要爬取动态网页(使用Selenium),需要安装Chrome驱动: ```bash # 方法1:使用webdriver-manager自动管理(推荐) pip install webdriver-manager # 方法2:手动下载 # 从 https://chromedriver.chromium.org/ 下载对应版本的驱动 # 并将驱动文件放到系统PATH中 ``` ## 配置说明 ### 1. 邮件配置 编辑 `config/config.yaml` 文件: ```yaml # 邮件服务器配置 email: smtp_server: "smtp.gmail.com" # SMTP服务器地址 smtp_port: 587 # SMTP端口 username: "your_email@gmail.com" # 发件人邮箱 password: "your_password" # 邮箱密码或应用专用密码 use_tls: true # 是否使用TLS加密 use_ssl: false # 是否使用SSL加密 # 发件人信息 sender: name: "自动化邮件系统" # 发件人名称 email: "your_email@gmail.com" # 发件人邮箱 ``` ### 2. 收件人配置 ```yaml # 收件人配置 recipients: to: - "1292259100@qq.com" # cc: # - "cc1@example.com" # bcc: # - "bcc1@example.com" ``` ### 3. URL配置 ```yaml # 要爬取的URL列表 urls: - name: "腾讯文档示例" url: "https://docs.qq.com/sheet/DQWVNdHFscXJ1bGRt?..." enabled: true description: "示例腾讯文档链接" ``` ### 4. 定时任务配置 ```yaml # 定时任务配置 scheduler: timezone: "Asia/Shanghai" # 时区设置 cron_expression: "0 9 * * *" # 每天上午9点执行 ``` ### 6. AI内容润色配置(可选) ```yaml # AI内容润色配置 ai_polisher: enabled: false # 是否启用AI润色功能 api_url: "http://10.8.104.37:5000/v1/chat/completions" # AI API地址 model: "Qwen-zxhy" # 使用的模型名称 timeout: 30 # API请求超时时间(秒) retry_times: 3 # 失败重试次数 # API参数 max_tokens: 200 # 最大生成token数 temperature: 0.5 # 温度参数,控制随机性 top_p: 0.95 # 核采样参数 # 提示词配置 system_prompt: "你是一个专业的内容分析助手,能够将爬取的网页内容进行智能总结和润色。" ``` ## 使用说明 ### 1. 验证配置 ```bash python main.py --validate ``` ### 2. 测试邮件功能 ```bash python main.py --test-email ``` ### 3. 测试AI润色功能(可选) ```bash python main.py --test-ai ``` ### 4. 单次运行 ```bash python main.py --run-once ``` ### 5. 启动定时调度器(守护模式) ```bash python main.py --daemon ``` 或者直接运行: ```bash python main.py ``` ### 5. 指定配置文件 ```bash python main.py --config /path/to/your/config.yaml ``` ## 常见邮件服务器配置 ### Gmail ```yaml email: smtp_server: "smtp.gmail.com" smtp_port: 587 use_tls: true ``` 注意:需要开启"两步验证"并使用"应用专用密码" ### Outlook/Hotmail ```yaml email: smtp_server: "smtp-mail.outlook.com" smtp_port: 587 use_tls: true ``` ### QQ邮箱 ```yaml email: smtp_server: "smtp.qq.com" smtp_port: 587 use_tls: true ``` 注意:需要开启SMTP服务并获取授权码 ### 163邮箱 ```yaml email: smtp_server: "smtp.163.com" smtp_port: 25 use_tls: false ``` ## Cron表达式说明 | 字段 | 允许的值 | 说明 | |------|----------|------| | 分钟 | 0-59 | 每小时的第几分钟 | | 小时 | 0-23 | 每天的第几小时 | | 日期 | 1-31 | 每月的第几天 | | 月份 | 1-12 | 每年的第几月 | | 星期 | 0-7 | 每周的第几天(0和7都表示周日) | ### 常用表达式示例 ``` 0 9 * * * # 每天上午9点 0 */6 * * * # 每6小时 30 8 * * 1-5 # 工作日上午8:30 0 0 * * 0 # 每周日午夜 0 0 1 * * # 每月1号午夜 ``` ## 故障排除 ### 1. 邮件发送失败 - 检查SMTP服务器地址和端口 - 确认用户名和密码正确 - 检查是否开启了"应用专用密码" - 确认防火墙没有阻止SMTP端口 ### 2. 网页爬取失败 - 检查URL是否可访问 - 确认网络连接正常 - 检查是否需要安装Chrome驱动 - 某些网站可能有反爬机制,需要调整请求头或等待时间 ### 3. 定时任务不执行 - 检查cron表达式格式是否正确 - 确认程序在后台持续运行 - 查看日志文件了解详细错误信息 ## 日志管理 日志文件位置:`logs/email_automation.log` 日志级别配置: ```yaml logging: level: "INFO" # DEBUG, INFO, WARNING, ERROR file: "logs/email_automation.log" ``` ## AI内容润色功能说明 ### 功能概述 系统集成了大语言模型AI内容润色功能,可以对爬取的网页内容进行智能总结和润色,生成更加简洁、清晰的报告。 ### 启用AI润色 1. 在 `config/config.yaml` 中设置 `ai_polisher.enabled: true` 2. 配置正确的API地址和模型参数 3. 使用 `--test-ai` 参数测试AI连接 ### 润色效果 - 🧠 **内容总结**: 提取关键信息,去除冗余内容 - 📝 **语言优化**: 改善表达方式,提高可读性 - 🎯 **结构化输出**: 生成格式化的内容结构 ### 邮件中的AI标识 启用AI润色后,邮件报告中会显示: - 🧠 AI已润色:表示内容经过了AI润色处理 - 📄 原始内容:表示未使用AI润色的原始内容 - 统计信息:显示AI润色的内容数量和比例 ## 扩展功能 ### 1. 自定义邮件模板 可以修改 `src/email_sender.py` 中的 `_generate_html_content` 和 `_generate_text_content` 方法来自定义邮件格式。 ### 2. 自定义AI润色提示词 修改 `config/config.yaml` 中的 `ai_polisher.system_prompt` 来自定义AI的润色风格和重点。 ### 3. 添加更多数据源 在 `config/config.yaml` 的 `urls` 部分添加更多URL。 ### 4. 数据处理 可以在发送邮件前对爬取的数据进行自定义处理,修改 `src/email_sender.py` 中的相关方法。 ## 安全注意事项 1. 不要在代码中硬编码密码 2. 使用应用专用密码而不是邮箱登录密码 3. 定期更新依赖包 4. 注意保护配置文件中的敏感信息 ## 许可证 本项目采用 MIT 许可证。详见 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。