docs: SMTP端口587无SSL发送经验教训
This commit is contained in:
138
MEMORY.md
138
MEMORY.md
@@ -82,6 +82,32 @@ git push origin v1.0.0
|
||||
| 本地LLM | http://192.168.2.5:1234/v1 | qwen3.5-4b |
|
||||
| API Key | sk-lm-fuP5tGU8:Hi7YU87jHyDP6Ay8Tl2j | |
|
||||
|
||||
### SMTP邮件发送经验 ⭐
|
||||
|
||||
**端口587无SSL的正确做法:**
|
||||
```python
|
||||
import smtplib
|
||||
server = smtplib.SMTP(host, 587) # 直接连接,不用SMTP_SSL
|
||||
server.ehlo()
|
||||
server.login(user, pass)
|
||||
server.sendmail(from, to, msg)
|
||||
server.quit()
|
||||
```
|
||||
|
||||
**错误做法(会导致邮件丢失):**
|
||||
- ❌ 使用 `server.starttls()` - 服务器不支持STARTTLS时会报错,即使跳过也可能导致邮件格式问题
|
||||
- ❌ 使用 `SMTP_SSL(host, 587)` - 587端口不是SSL端口
|
||||
|
||||
**服务器返回解读:**
|
||||
- `{}` 空字典 = 服务器已接收,等待投递
|
||||
- 有内容 = 投递失败的收件人列表
|
||||
|
||||
**mail.tphai.com 配置:**
|
||||
- 主机: mail.tphai.com
|
||||
- 端口: 587(无SSL,明文)
|
||||
- 用户: favor@tphai.com
|
||||
- 密码: favor@!
|
||||
|
||||
---
|
||||
|
||||
## 项目索引
|
||||
@@ -101,18 +127,110 @@ git push origin v1.0.0
|
||||
|
||||
## 更新日志
|
||||
|
||||
### 2026-04-13
|
||||
- AI对话系统 v2.1.1:多版本历史消息功能
|
||||
- 添加浏览器标签favicon(🤖图标)
|
||||
- 复制按钮在消息内容下方,一直显示
|
||||
- 重新生成功能升级:
|
||||
- 点击重新生成时隐藏当前内容,显示loading动画
|
||||
- 生成完成后添加新版本,保留旧版本
|
||||
- 版本切换控件(左右箭头 + 版本指示器)
|
||||
- 可切换查看历史版本
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.1
|
||||
### 2026-04-14
|
||||
- Xian Favor v1.9.0:发送邮件功能 + 邮箱管理
|
||||
- 每个收藏卡片添加"发送邮件"按钮(📧图标)
|
||||
- 点击弹出模态框:选择已有邮箱或输入新邮箱
|
||||
- 新邮箱自动保存到邮箱管理
|
||||
- 邮箱管理页面:添加、编辑、删除邮箱
|
||||
- SMTP配置支持环境变量(SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS)
|
||||
- Git仓库: http://192.168.2.8:12007/coder/xian-favor v1.9.0
|
||||
- AI对话系统 v2.4.3:多模态图片支持
|
||||
- 图片 base64 数据传递给视觉模型(OpenAI 多模态格式)
|
||||
- 需选择支持视觉的 Agent(如 vlm-agent)才能识别图片
|
||||
- 图片信息保存在 extra_data 中供历史记录显示
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.4.3
|
||||
|
||||
### 2026-04-13
|
||||
- AI对话系统 v2.4.0:文件上传功能
|
||||
- 支持图片上传(PNG、JPG、GIF等,预览显示)
|
||||
- 支持文本文件上传(txt、md、json、csv等,内容自动添加)
|
||||
- 支持 PDF 和 Word 文档上传
|
||||
- 文件内容自动添加到消息中供 AI 分析
|
||||
- 多文件同时上传支持
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.4.0
|
||||
- AI对话系统 v2.3.9:修复历史搜索结果显示
|
||||
- WebSocket history 消息添加 extra_data 字段
|
||||
- 选择对话时正确传递搜索结果数据
|
||||
- 前端 appendMessage 接收 extraData 参数并处理
|
||||
- 刷新页面后历史对话中的搜索结果正确显示
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.9
|
||||
- AI对话系统 v2.3.7:历史搜索结果显示修复
|
||||
- appendMessage 函数接收 extraData 参数
|
||||
- 创建用户消息时直接处理搜索结果显示
|
||||
- 简化 displayHistory 逻辑,统一处理方式
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.7
|
||||
- AI对话系统 v2.3.6:搜索结果持久化
|
||||
- 用户消息 extra_data 存储搜索结果(search_results, search_query)
|
||||
- API 返回消息时包含 extra_data
|
||||
- 前端 displayHistory 处理历史搜索结果显示
|
||||
- 刷新页面后历史对话中的搜索结果保持原状
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.6
|
||||
- AI对话系统 v2.3.5:修复搜索结果数量配置
|
||||
- 搜索结果数量根据工具配置读取(max_results)
|
||||
- LLM上下文和前端展示都使用配置的数量
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.5
|
||||
- AI对话系统 v2.3.4:对话流程优化
|
||||
- 用户发送消息时前端立即显示(不用等后端广播)
|
||||
- 后端处理顺序调整:广播用户消息 → 执行搜索 → 发送搜索结果 → 调用LLM
|
||||
- 前端收到 user_message 时检查是否已显示(避免重复)
|
||||
- 流程顺序:用户消息 → 搜索结果(折叠) → AI回复
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.4
|
||||
- AI对话系统 v2.3.3:搜索结果UI优化
|
||||
- 搜索结果放到用户消息下面(流程逻辑更清晰)
|
||||
- 默认折叠,点击展开/收起
|
||||
- 显示搜索关键词和结果数量摘要
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.3
|
||||
- AI对话系统 v2.3.2:修复 tools 字段读取
|
||||
- get_agent_config 添加 tools 字段返回
|
||||
- AI对话系统 v2.3.1:搜索功能修复
|
||||
- 添加详细日志帮助调试搜索执行过程
|
||||
- 搜索结果发送到前端展示(search_results 类型消息)
|
||||
- 前端增加搜索结果展示组件(标题、摘要、来源)
|
||||
- 修复 datetime 导入错误
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.1
|
||||
- AI对话系统 v2.3.0:工具管理重构
|
||||
- ToolConfig 模型:通用工具配置,支持多种类型(搜索、计算器、代码执行、图像生成等)
|
||||
- ToolUsageLog 模型:工具调用日志记录
|
||||
- 工具使用统计:调用次数、成功率、错误记录
|
||||
- 后台管理界面:工具列表+统计展示(调用次数、成功率、最近错误)
|
||||
- API 重构:/api/v2/tools(替代 /api/v2/search-tools)
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.3.0
|
||||
- AI对话系统 v2.2.2:优化搜索触发逻辑
|
||||
- 搜索改为勾选即执行,不再依赖关键词检测
|
||||
- 修复 Agent tools 字段默认为空的问题
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.2
|
||||
- AI对话系统 v2.2.1:修复搜索功能
|
||||
- 修复数据库缺少 tools 字段问题(SQLite ALTER TABLE)
|
||||
- 移动搜索复选框到输入框区域(快捷语句栏)
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.1
|
||||
- AI对话系统 v2.2.0:搜索工具功能(Tavily Search)
|
||||
- 新增 SearchToolConfig 模型:支持搜索工具配置管理
|
||||
- Agent 增加 tools 字段:可配置可用工具列表
|
||||
- 后台管理增加搜索工具配置页面(增删改查)
|
||||
- Agent 管理增加工具启用开关(搜索工具)
|
||||
- 网页端增加搜索工具禁用复选框(实时控制)
|
||||
- WebSocket chat 处理增加关键词触发搜索逻辑
|
||||
- 默认配置 Tavily Search API(已填入 API Key)
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.2.0
|
||||
- AI对话系统 v2.1.6:简化新建对话判断条件
|
||||
- 只检查 `!currentConversationId && !hasMessages` 即可判断新建状态
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.6
|
||||
- AI对话系统 v2.1.5:优化新建对话逻辑
|
||||
- 新建对话时检查是否已经是新建状态(无对话ID、无消息、显示欢迎界面)
|
||||
- 避免重复点击新建按钮创建多个空对话
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.5
|
||||
- AI对话系统 v2.1.3:多版本历史消息功能完善
|
||||
- 添加浏览器标签favicon(🤖图标)
|
||||
- 复制按钮在消息内容下方,一直显示
|
||||
- 重新生成功能:
|
||||
- 点击重新生成时隐藏当前内容,显示loading动画
|
||||
- 生成完成后移除loading,显示新内容
|
||||
- 保留旧版本,支持版本切换
|
||||
- 版本切换控件:简化布局,整合到操作按钮区域(复制|重新生成|< 1/3 >)
|
||||
- Git仓库: http://192.168.2.8:12007/coder/ai-chat-system v2.1.3
|
||||
|
||||
### 2026-04-13 (其他更新)
|
||||
- LLM Proxy v2.0.0:合并后台管理到单端口
|
||||
- 端口: 19007 (原 19007+19008)
|
||||
- 前台API: http://localhost:19007/v1/chat/completions
|
||||
|
||||
Reference in New Issue
Block a user