同步配置
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
---
|
||||
name: "weekly-report-dingtalk-draft"
|
||||
description: "生成项目周报草稿存入钉邮草稿箱(仅草稿禁发)。固化杨轩周报标准格式/签名/收件抄送。"
|
||||
status: proposal
|
||||
version: "v1"
|
||||
date: "2026-07-31T02:07:55.496Z"
|
||||
---
|
||||
|
||||
# 周报草稿生成技能(钉邮草稿箱)
|
||||
|
||||
## 用途
|
||||
为杨轩生成项目周报并保存到钉钉企业邮箱(钉邮)**草稿箱**,**禁止直接发送**(红线)。
|
||||
|
||||
## 发送渠道
|
||||
- **himalaya IMAP 存草稿不可用**(`feature not available`)——不要用它存草稿/send。
|
||||
- 使用 **Python imaplib + 钉邮 IMAP**:`imap.mxhichina.com:993`(SSL),账号密码从 himalaya 配置读取。
|
||||
- SMTP 可发不用;本技能**只存草稿**。
|
||||
- 草稿文件夹 IMAP 名(modified UTF7):`&g0l6Pw-`(即「草稿」)。可用 `m.list()` 复核。
|
||||
|
||||
## 凭据读取(不硬编码、不外泄)
|
||||
从 `/home/yangxuan/.config/himalaya/config.toml` 读取:
|
||||
`accounts.yangxuan."imap.sasl.plain.username"`、`"imap.sasl.plain.password.raw"`。
|
||||
用正则匹配键名取值;脚本里用变量引用,**不要把密码打印到日志/聊天**。
|
||||
|
||||
## 固定配置(每次执行仍须向用户确认)
|
||||
- 收件人:刘强 `<liuqiang@witsoft.cn>`
|
||||
- 抄送:陈明 `<chenm@witsoft.cn>`、曾莉 `<zengli@witsoft.cn>`(**不含吴睿东 wurd,已去除**)
|
||||
|
||||
## 主题格式
|
||||
半角括号 + 空格~空格,RFC2047 编码(整个主题做 base64):
|
||||
`Gx开发周报 (YYYY-MM-DD ~ YYYY-MM-DD)`
|
||||
示例:`G6开发周报 (2026-07-27 ~ 2026-07-31)`
|
||||
|
||||
## 正文结构(text/plain + text/html 双部分 multipart/alternative)
|
||||
```
|
||||
项目名称: 维云智造Gx
|
||||
主要任务: <简短短语>
|
||||
|
||||
本周工作内容
|
||||
周一(YYYY-MM-DD)
|
||||
- <条目>
|
||||
- <条目>
|
||||
周二(YYYY-MM-DD)
|
||||
- ...
|
||||
(周一到周五)
|
||||
|
||||
存在问题
|
||||
无
|
||||
|
||||
Best regards,
|
||||
杨轩
|
||||
地址:中国·南京云密城L栋5/10楼
|
||||
手机:18726128489
|
||||
邮箱:yangxuan@witsoft.cn
|
||||
```
|
||||
- HTML 用 `<b>` 加粗标题、` ` 空格、`<br >` 换行、条目 ` - `。
|
||||
- **签名含图片**(外链):`https://mail-online.nosdn.127.net/wzpmmc/65e8a1396c5c0dbb66cecd9792d4504b.jpg`,签名文字灰色(#bfbfbf, Microsoft Yahei 13px)。
|
||||
|
||||
## Header 编码(关键,易踩坑)
|
||||
RFC2047,**姓名单独编码成带引号 `"=?UTF-8?B?...?="`,邮箱明文**;不要把姓名+邮箱一起编码(会导致收件人重叠乱码)。
|
||||
```
|
||||
From: "=?UTF-8?B?5p2o6L2p?=" <yangxuan@witsoft.cn>
|
||||
To: "=?UTF-8?B?5YiY5by6?=" <liuqiang@witsoft.cn>
|
||||
Cc: "=?UTF-8?B?6ZmI5piO?=" <chenm@witsoft.cn>, "=?UTF-8?B?5pu+6I6J?=" <zengli@witsoft.cn>
|
||||
Subject: =?UTF-8?B?<base64(整个主题)>?=
|
||||
```
|
||||
人名 base64 速查:
|
||||
- 杨轩 `5p2o6L2p`、刘强 `5YiY5by6`、陈明 `6ZmI5piO`、曾莉 `5pu+6I6J`、吴睿东 `5ZC0552/5Lic`(勿用其抄送)
|
||||
|
||||
## 存草稿命令(Python)
|
||||
```python
|
||||
import imaplib, time, re, base64
|
||||
# 读取凭据 ...
|
||||
m = imaplib.IMAP4_SSL('imap.mxhichina.com', 993); m.login(USER, PASS)
|
||||
m.select(DRAFT)
|
||||
typ, data = m.search(None, 'ALL'); ids = data[0].split()
|
||||
if ids: # 先清空旧草稿再覆盖
|
||||
m.store(b','.join(ids), '+FLAGS', r'(\Deleted)'); m.expunge()
|
||||
m.append(DRAFT, None, imaplib.Time2Internaldate(time.time()), raw_eml_bytes)
|
||||
m.logout()
|
||||
```
|
||||
- 用 `EmailMessage`/`MIMEText` 组装,或字节级拼接 header + body(推荐字节级拼接避免库自动编码干扰 header)。
|
||||
|
||||
## 红线
|
||||
- **仅存草稿箱,禁止直接发送/`send`**。未获杨轩明确放行绝不执行 SMTP 发送。
|
||||
- 草稿进入草稿箱后,交付给杨轩到钉邮核对;杨轩放行后才允许发送。
|
||||
|
||||
## 工作流
|
||||
1. 收集本周(周一到周五)日报内容。
|
||||
2. 组装 plain + html,套用固定签名。
|
||||
3. 正确 RFC2047 header。
|
||||
4. imaplib APPEND 到草稿箱(先清旧草稿)。
|
||||
5. 回报草稿信息(主题/收件/抄送/有无签名)给杨轩,等放行。
|
||||
Reference in New Issue
Block a user