@zhin.js/adapter-email 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +4 -4
- package/lib/adapter.d.ts +5 -4
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +4 -3
- package/lib/adapter.js.map +1 -1
- package/lib/{bot.d.ts → endpoint.d.ts} +6 -6
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +11 -11
- package/lib/endpoint.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/adapter.ts +7 -5
- package/src/{bot.ts → endpoint.ts} +14 -14
- package/src/index.ts +2 -2
- package/src/types.ts +1 -1
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ pnpm add @zhin.js/adapter-email
|
|
|
25
25
|
| **网络** | 出站可连 SMTP/IMAP 端口(465/587/993 等) |
|
|
26
26
|
| **host-router** | 不需要;IMAP 轮询在适配器内完成 |
|
|
27
27
|
|
|
28
|
-
必填字段见 `
|
|
28
|
+
必填字段见 `EmailEndpointConfig`:`context`、`name`、`smtp`、`imap`(含 `auth.user` / `auth.pass` 与 `user` / `password`)。
|
|
29
29
|
|
|
30
30
|
## 最小配置
|
|
31
31
|
|
|
@@ -33,7 +33,7 @@ pnpm add @zhin.js/adapter-email
|
|
|
33
33
|
plugins:
|
|
34
34
|
- "@zhin.js/adapter-email"
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
endpoints:
|
|
37
37
|
- context: email
|
|
38
38
|
name: my-email-bot
|
|
39
39
|
smtp:
|
|
@@ -73,7 +73,7 @@ bots:
|
|
|
73
73
|
import { defineConfig } from 'zhin.js'
|
|
74
74
|
|
|
75
75
|
export default defineConfig({
|
|
76
|
-
|
|
76
|
+
endpoints: [
|
|
77
77
|
{
|
|
78
78
|
context: 'email',
|
|
79
79
|
name: 'my-email-bot',
|
|
@@ -111,7 +111,7 @@ const { addCommand } = usePlugin()
|
|
|
111
111
|
addCommand(
|
|
112
112
|
new MessageCommand('status')
|
|
113
113
|
.desc('查询状态')
|
|
114
|
-
.action(() => '
|
|
114
|
+
.action(() => 'Agent 运行中')
|
|
115
115
|
)
|
|
116
116
|
```
|
|
117
117
|
|
package/lib/adapter.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Email 适配器
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter, Plugin } from "zhin.js";
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
7
|
-
export declare class EmailAdapter extends Adapter<
|
|
5
|
+
import { EmailEndpoint } from "./endpoint.js";
|
|
6
|
+
import type { EmailEndpointConfig } from "./types.js";
|
|
7
|
+
export declare class EmailAdapter extends Adapter<EmailEndpoint> {
|
|
8
|
+
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
8
9
|
constructor(plugin: Plugin);
|
|
9
|
-
|
|
10
|
+
createEndpoint(config: EmailEndpointConfig): EmailEndpoint;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=adapter.d.ts.map
|
package/lib/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,qBAAa,YAAa,SAAQ,OAAO,CAAC,aAAa,CAAC;IACtD,gBAAyB,YAAY,mCAAoC;gBAE3D,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;CAG7D"}
|
package/lib/adapter.js
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Email 适配器
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter } from "zhin.js";
|
|
5
|
-
import {
|
|
5
|
+
import { EmailEndpoint } from "./endpoint.js";
|
|
6
6
|
export class EmailAdapter extends Adapter {
|
|
7
|
+
static capabilities = ['inbound', 'outbound'];
|
|
7
8
|
constructor(plugin) {
|
|
8
9
|
super(plugin, 'email', []);
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
return new
|
|
11
|
+
createEndpoint(config) {
|
|
12
|
+
return new EmailEndpoint(this, config);
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=adapter.js.map
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,OAAO,YAAa,SAAQ,OAAsB;IACtD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEvE,YAAY,MAAc;QACtB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,MAA2B;QACtC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Endpoint, Message, MessageSegment, SendOptions } from 'zhin.js';
|
|
2
2
|
import { EventEmitter } from "events";
|
|
3
|
-
import type {
|
|
3
|
+
import type { EmailEndpointConfig, EmailMessage } from "./types.js";
|
|
4
4
|
import type { EmailAdapter } from "./adapter.js";
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class EmailEndpoint extends EventEmitter implements Endpoint<EmailEndpointConfig, EmailMessage> {
|
|
6
6
|
adapter: EmailAdapter;
|
|
7
|
-
$config:
|
|
7
|
+
$config: EmailEndpointConfig;
|
|
8
8
|
$connected: boolean;
|
|
9
9
|
private smtpTransporter;
|
|
10
10
|
private imapConnection;
|
|
11
11
|
private checkTimer;
|
|
12
12
|
get logger(): import("zhin.js").Logger;
|
|
13
13
|
get $id(): string;
|
|
14
|
-
constructor(adapter: EmailAdapter, config:
|
|
14
|
+
constructor(adapter: EmailAdapter, config: EmailEndpointConfig);
|
|
15
15
|
$connect(): Promise<void>;
|
|
16
16
|
$disconnect(): Promise<void>;
|
|
17
17
|
private setupImapListeners;
|
|
@@ -30,4 +30,4 @@ export declare class EmailBot extends EventEmitter implements Bot<EmailBotConfig
|
|
|
30
30
|
*/
|
|
31
31
|
static htmlToText(html: string): string;
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAwB,WAAW,EAAkC,MAAM,SAAS,CAAC;AAC9I,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,aAAc,SAAQ,YAAa,YAAW,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAe/E,OAAO,EAAE,YAAY;IAdxC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,UAAU,CAA+B;IAEjD,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB;IAe/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,eAAe;YAWT,iBAAiB;IAoC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IAwBzB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAwC7D,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE;IAyCzD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,iBAAiB;YA+DjB,kBAAkB;IAqBhC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG1C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Email
|
|
2
|
+
* Email Endpoint 实现
|
|
3
3
|
*/
|
|
4
4
|
import nodemailer from "nodemailer";
|
|
5
5
|
import Imap from "imap";
|
|
@@ -8,7 +8,7 @@ import { formatCompact, Message, segment, htmlToPlainTextWithBlockBreaks } from
|
|
|
8
8
|
import { EventEmitter } from "events";
|
|
9
9
|
import { createWriteStream, promises as fs } from "fs";
|
|
10
10
|
import path from "path";
|
|
11
|
-
export class
|
|
11
|
+
export class EmailEndpoint extends EventEmitter {
|
|
12
12
|
adapter;
|
|
13
13
|
$config;
|
|
14
14
|
$connected = false;
|
|
@@ -45,7 +45,7 @@ export class EmailBot extends EventEmitter {
|
|
|
45
45
|
});
|
|
46
46
|
// 验证 SMTP 连接
|
|
47
47
|
await this.smtpTransporter.verify();
|
|
48
|
-
this.logger.info(formatCompact({
|
|
48
|
+
this.logger.info(formatCompact({ endpoint: this.$id, mode: "smtp" }));
|
|
49
49
|
// 初始化 IMAP 连接
|
|
50
50
|
this.imapConnection = new Imap({
|
|
51
51
|
user: this.$config.imap.user,
|
|
@@ -62,7 +62,7 @@ export class EmailBot extends EventEmitter {
|
|
|
62
62
|
this.imapConnection.once('error', reject);
|
|
63
63
|
this.imapConnection.connect();
|
|
64
64
|
});
|
|
65
|
-
this.logger.info(formatCompact({
|
|
65
|
+
this.logger.info(formatCompact({ endpoint: this.$id, mode: "imap" }));
|
|
66
66
|
// 开始检查邮件
|
|
67
67
|
this.startEmailCheck();
|
|
68
68
|
this.$connected = true;
|
|
@@ -89,7 +89,7 @@ export class EmailBot extends EventEmitter {
|
|
|
89
89
|
this.smtpTransporter.close();
|
|
90
90
|
this.smtpTransporter = null;
|
|
91
91
|
}
|
|
92
|
-
this.logger.info(formatCompact({ op: "disconnect",
|
|
92
|
+
this.logger.info(formatCompact({ op: "disconnect", endpoint: this.$id }));
|
|
93
93
|
}
|
|
94
94
|
setupImapListeners() {
|
|
95
95
|
if (!this.imapConnection)
|
|
@@ -102,7 +102,7 @@ export class EmailBot extends EventEmitter {
|
|
|
102
102
|
this.logger.error('IMAP error:', error);
|
|
103
103
|
});
|
|
104
104
|
this.imapConnection.on('end', () => {
|
|
105
|
-
this.logger.info(formatCompact({ op: "disconnect",
|
|
105
|
+
this.logger.info(formatCompact({ op: "disconnect", endpoint: this.$id, mode: "imap" }));
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
startEmailCheck() {
|
|
@@ -198,11 +198,11 @@ export class EmailBot extends EventEmitter {
|
|
|
198
198
|
const channelType = 'private';
|
|
199
199
|
const channelId = emailMsg.from;
|
|
200
200
|
// 解析邮件内容
|
|
201
|
-
const content =
|
|
201
|
+
const content = EmailEndpoint.parseEmailContent(emailMsg);
|
|
202
202
|
const result = Message.from(emailMsg, {
|
|
203
203
|
$id: emailMsg.messageId,
|
|
204
204
|
$adapter: 'email',
|
|
205
|
-
$
|
|
205
|
+
$endpoint: this.$config.name,
|
|
206
206
|
$sender: {
|
|
207
207
|
id: emailMsg.from,
|
|
208
208
|
name: emailMsg.from.split('<')[0].trim() || emailMsg.from
|
|
@@ -220,7 +220,7 @@ export class EmailBot extends EventEmitter {
|
|
|
220
220
|
$reply: async (content) => {
|
|
221
221
|
return await this.adapter.sendMessage({
|
|
222
222
|
context: this.$config.context,
|
|
223
|
-
|
|
223
|
+
endpoint: this.$config.name,
|
|
224
224
|
id: emailMsg.from,
|
|
225
225
|
type: 'private',
|
|
226
226
|
content
|
|
@@ -241,7 +241,7 @@ export class EmailBot extends EventEmitter {
|
|
|
241
241
|
}
|
|
242
242
|
// 如果没有纯文本但有HTML,尝试转换
|
|
243
243
|
if (!email.text && email.html) {
|
|
244
|
-
const textFromHtml =
|
|
244
|
+
const textFromHtml = EmailEndpoint.htmlToText(email.html);
|
|
245
245
|
if (textFromHtml) {
|
|
246
246
|
segments.push(segment.text(textFromHtml));
|
|
247
247
|
}
|
|
@@ -365,4 +365,4 @@ export class EmailBot extends EventEmitter {
|
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
// 创建和注册适配器
|
|
368
|
-
//# sourceMappingURL=
|
|
368
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,KAAK,EAAE,YAAY,CAAC;KACrB;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,KAAK,EAAE,YAAY,CAAC;KACrB;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
import { usePlugin } from "zhin.js";
|
|
5
5
|
import { EmailAdapter } from "./adapter.js";
|
|
6
6
|
export * from "./types.js";
|
|
7
|
-
export {
|
|
7
|
+
export { EmailEndpoint } from "./endpoint.js";
|
|
8
8
|
export { EmailAdapter } from "./adapter.js";
|
|
9
9
|
const plugin = usePlugin();
|
|
10
10
|
const { provide } = plugin;
|
|
11
11
|
provide({
|
|
12
12
|
name: "email",
|
|
13
|
-
description: "Email
|
|
13
|
+
description: "Email Endpoint Adapter",
|
|
14
14
|
mounted: async (p) => {
|
|
15
15
|
const adapter = new EmailAdapter(p);
|
|
16
16
|
await adapter.start();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAE3B,OAAO,CAAC;IACN,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAqB,EAAE,EAAE;QACvC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACkB,CAAC,CAAC"}
|
package/lib/types.d.ts
CHANGED
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-email",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Zhin.js adapter for Email (SMTP/IMAP)",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
"nodemailer": "^8.0.10"
|
|
12
12
|
},
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"zhin.js": "2.0.
|
|
14
|
+
"zhin.js": "2.0.1"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@types/imap": "^0.8.40",
|
|
18
18
|
"@types/mailparser": "^3.4.6",
|
|
19
|
-
"@types/node": "^25.9.
|
|
19
|
+
"@types/node": "^25.9.2",
|
|
20
20
|
"@types/nodemailer": "^8.0.0",
|
|
21
21
|
"typescript": "^6.0.3",
|
|
22
|
-
"zhin.js": "2.0.
|
|
22
|
+
"zhin.js": "2.0.1"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
25
|
"zhin",
|
package/src/adapter.ts
CHANGED
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
* Email 适配器
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter, Plugin } from "zhin.js";
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
5
|
+
import { EmailEndpoint } from "./endpoint.js";
|
|
6
|
+
import type { EmailEndpointConfig } from "./types.js";
|
|
7
|
+
|
|
8
|
+
export class EmailAdapter extends Adapter<EmailEndpoint> {
|
|
9
|
+
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
7
10
|
|
|
8
|
-
export class EmailAdapter extends Adapter<EmailBot> {
|
|
9
11
|
constructor(plugin: Plugin) {
|
|
10
12
|
super(plugin, 'email', []);
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
return new
|
|
15
|
+
createEndpoint(config: EmailEndpointConfig): EmailEndpoint {
|
|
16
|
+
return new EmailEndpoint(this, config);
|
|
15
17
|
}
|
|
16
18
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Email
|
|
2
|
+
* Email Endpoint 实现
|
|
3
3
|
*/
|
|
4
4
|
import nodemailer from "nodemailer";
|
|
5
5
|
import Imap from "imap";
|
|
6
6
|
import { simpleParser, type ParsedMail, type Attachment } from "mailparser";
|
|
7
|
-
import { formatCompact,
|
|
7
|
+
import { formatCompact, Endpoint, Message, MessageSegment, segment, SendContent, SendOptions, htmlToPlainTextWithBlockBreaks } from 'zhin.js';
|
|
8
8
|
import { EventEmitter } from "events";
|
|
9
9
|
import { createWriteStream, promises as fs } from "fs";
|
|
10
10
|
import path from "path";
|
|
11
|
-
import type {
|
|
11
|
+
import type { EmailEndpointConfig, EmailMessage } from "./types.js";
|
|
12
12
|
import type { EmailAdapter } from "./adapter.js";
|
|
13
13
|
|
|
14
|
-
export class
|
|
15
|
-
$config:
|
|
14
|
+
export class EmailEndpoint extends EventEmitter implements Endpoint<EmailEndpointConfig, EmailMessage> {
|
|
15
|
+
$config: EmailEndpointConfig;
|
|
16
16
|
$connected: boolean = false;
|
|
17
17
|
private smtpTransporter: nodemailer.Transporter | null = null;
|
|
18
18
|
private imapConnection: Imap | null = null;
|
|
@@ -26,7 +26,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
26
26
|
return this.$config.name;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
constructor(public adapter: EmailAdapter, config:
|
|
29
|
+
constructor(public adapter: EmailAdapter, config: EmailEndpointConfig) {
|
|
30
30
|
super();
|
|
31
31
|
this.$config = config;
|
|
32
32
|
|
|
@@ -53,7 +53,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
53
53
|
|
|
54
54
|
// 验证 SMTP 连接
|
|
55
55
|
await this.smtpTransporter!.verify();
|
|
56
|
-
this.logger.info(formatCompact({
|
|
56
|
+
this.logger.info(formatCompact({ endpoint: this.$id, mode: "smtp" }));
|
|
57
57
|
|
|
58
58
|
// 初始化 IMAP 连接
|
|
59
59
|
this.imapConnection = new Imap({
|
|
@@ -74,7 +74,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
74
74
|
this.imapConnection!.connect();
|
|
75
75
|
});
|
|
76
76
|
|
|
77
|
-
this.logger.info(formatCompact({
|
|
77
|
+
this.logger.info(formatCompact({ endpoint: this.$id, mode: "imap" }));
|
|
78
78
|
|
|
79
79
|
// 开始检查邮件
|
|
80
80
|
this.startEmailCheck();
|
|
@@ -107,7 +107,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
107
107
|
this.smtpTransporter = null;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
this.logger.info(formatCompact( { op: "disconnect",
|
|
110
|
+
this.logger.info(formatCompact( { op: "disconnect", endpoint: this.$id }));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
private setupImapListeners(): void {
|
|
@@ -123,7 +123,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
this.imapConnection.on('end', () => {
|
|
126
|
-
this.logger.info(formatCompact( { op: "disconnect",
|
|
126
|
+
this.logger.info(formatCompact( { op: "disconnect", endpoint: this.$id, mode: "imap" }));
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -230,12 +230,12 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
230
230
|
const channelId = emailMsg.from;
|
|
231
231
|
|
|
232
232
|
// 解析邮件内容
|
|
233
|
-
const content =
|
|
233
|
+
const content = EmailEndpoint.parseEmailContent(emailMsg);
|
|
234
234
|
|
|
235
235
|
const result = Message.from(emailMsg, {
|
|
236
236
|
$id: emailMsg.messageId,
|
|
237
237
|
$adapter: 'email',
|
|
238
|
-
$
|
|
238
|
+
$endpoint: this.$config.name,
|
|
239
239
|
$sender: {
|
|
240
240
|
id: emailMsg.from,
|
|
241
241
|
name: emailMsg.from.split('<')[0].trim() || emailMsg.from
|
|
@@ -253,7 +253,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
253
253
|
$reply: async (content: SendContent): Promise<string> => {
|
|
254
254
|
return await this.adapter.sendMessage({
|
|
255
255
|
context: this.$config.context,
|
|
256
|
-
|
|
256
|
+
endpoint: this.$config.name,
|
|
257
257
|
id: emailMsg.from,
|
|
258
258
|
type: 'private',
|
|
259
259
|
content
|
|
@@ -279,7 +279,7 @@ export class EmailBot extends EventEmitter implements Bot<EmailBotConfig, EmailM
|
|
|
279
279
|
|
|
280
280
|
// 如果没有纯文本但有HTML,尝试转换
|
|
281
281
|
if (!email.text && email.html) {
|
|
282
|
-
const textFromHtml =
|
|
282
|
+
const textFromHtml = EmailEndpoint.htmlToText(email.html);
|
|
283
283
|
if (textFromHtml) {
|
|
284
284
|
segments.push(segment.text(textFromHtml));
|
|
285
285
|
}
|
package/src/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ declare module "zhin.js" {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export * from "./types.js";
|
|
14
|
-
export {
|
|
14
|
+
export { EmailEndpoint } from "./endpoint.js";
|
|
15
15
|
export { EmailAdapter } from "./adapter.js";
|
|
16
16
|
|
|
17
17
|
const plugin = usePlugin();
|
|
@@ -19,7 +19,7 @@ const { provide } = plugin;
|
|
|
19
19
|
|
|
20
20
|
provide({
|
|
21
21
|
name: "email",
|
|
22
|
-
description: "Email
|
|
22
|
+
description: "Email Endpoint Adapter",
|
|
23
23
|
mounted: async (p: Plugin) => {
|
|
24
24
|
const adapter = new EmailAdapter(p);
|
|
25
25
|
await adapter.start();
|
package/src/types.ts
CHANGED
package/lib/bot.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,GAAG,EAAE,OAAO,EAAE,cAAc,EAAwB,WAAW,EAAkC,MAAM,SAAS,CAAC;AACzI,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,QAAS,SAAQ,YAAa,YAAW,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;IAehE,OAAO,EAAE,YAAY;IAdxC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,OAAO,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,UAAU,CAA+B;IAEjD,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc;IAe1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,eAAe;YAWT,iBAAiB;IAoC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IAwBzB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAwC7D,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE;IAyCzD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjC,iBAAiB;YA+DjB,kBAAkB;IAqBhC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG1C"}
|
package/lib/bot.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|