react-native-email-imap-smtp 0.3.20 → 0.3.21

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.
@@ -1,4 +1,20 @@
1
+ /**
2
+ * react-native-email-imap-smtp — 公共 API 类型声明
3
+ *
4
+ * 本文件在 bob build 后被 scripts/fix-types.js 复制为
5
+ * `lib/typescript/src/index.d.ts`,是使用方看到的完整 API 签名。
6
+ * 修改公共 API 时,请保持 `src/index.tsx` 的实现导出与之同步。
7
+ */
1
8
  import type {
9
+ AuthType,
10
+ ConnectionType,
11
+ MailboxFlag,
12
+ EmailFlag,
13
+ EmailPriority,
14
+ EmailAddress,
15
+ EmailBody,
16
+ ThreadInfo,
17
+ FetchOptions,
2
18
  IMAPConfig,
3
19
  IMAPConnectionResult,
4
20
  Mailbox,
@@ -14,11 +30,22 @@ import type {
14
30
  AppendResult,
15
31
  SMTPConfig,
16
32
  SMTPConnectionResult,
33
+ SendAttachment,
17
34
  SendMailOptions,
18
35
  SendMailResult,
36
+ EmailError,
19
37
  } from './types';
20
38
 
21
39
  export {
40
+ AuthType,
41
+ ConnectionType,
42
+ MailboxFlag,
43
+ EmailFlag,
44
+ EmailPriority,
45
+ EmailAddress,
46
+ EmailBody,
47
+ ThreadInfo,
48
+ FetchOptions,
22
49
  IMAPConfig,
23
50
  IMAPConnectionResult,
24
51
  Mailbox,
@@ -34,99 +61,260 @@ export {
34
61
  AppendResult,
35
62
  SMTPConfig,
36
63
  SMTPConnectionResult,
64
+ SendAttachment,
37
65
  SendMailOptions,
38
66
  SendMailResult,
67
+ EmailError,
39
68
  }
40
69
 
41
70
  // ─── IMAP ──────────────────────────────────────────────────
42
71
 
72
+ /**
73
+ * 建立 IMAP 连接。
74
+ *
75
+ * @param config 服务器连接配置(主机、端口、账号、加密方式等)
76
+ * @returns 连接结果,含服务器能力信息;`success === false` 时带 `error`
77
+ */
43
78
  export declare function imapConnect(
44
79
  config: IMAPConfig
45
80
  ): Promise<IMAPConnectionResult>;
46
81
 
82
+ /**
83
+ * 断开当前 IMAP 连接并清理服务端会话。
84
+ *
85
+ * @returns 连接断开后 resolve;未连接时调用也安全
86
+ */
47
87
  export declare function imapDisconnect(): Promise<void>;
48
88
 
89
+ /**
90
+ * 列出所有邮箱(IMAP mailboxes)。
91
+ *
92
+ * @returns 邮箱列表,含订阅状态与属性标记
93
+ */
49
94
  export declare function imapListMailboxes(): Promise<Mailbox[]>;
50
95
 
96
+ /**
97
+ * 选择(打开)一个邮箱,之后的大多数 IMAP 操作都作用于该邮箱。
98
+ *
99
+ * @param mailbox 邮箱完整路径,例如 `'INBOX'`、`'Work/Project'`
100
+ * @param readOnly 是否以只读方式打开(不更新 `\\Seen` 标记),默认 false
101
+ * @returns 邮箱状态(UID、邮件数、未读数等)
102
+ */
51
103
  export declare function imapSelectMailbox(
52
104
  mailbox: string,
53
105
  readOnly?: boolean
54
106
  ): Promise<MailboxStatus>;
55
107
 
108
+ /**
109
+ * 刷新当前邮箱的状态(重新获取邮件数、未读数等)。
110
+ *
111
+ * @returns 刷新后的邮箱状态
112
+ */
56
113
  export declare function imapRefreshMailbox(): Promise<MailboxStatus>;
57
114
 
115
+ /**
116
+ * 获取文件夹树(含父子关系、邮件数、未读数)。
117
+ *
118
+ * @returns 文件夹列表
119
+ */
58
120
  export declare function imapFetchFolders(): Promise<Folder[]>;
59
121
 
122
+ /**
123
+ * 创建一个新文件夹。
124
+ *
125
+ * @param folderName 新文件夹的完整路径,例如 `'Archive/2026'`
126
+ * @returns 创建完成后 resolve
127
+ */
60
128
  export declare function imapCreateFolder(folderName: string): Promise<void>;
61
129
 
130
+ /**
131
+ * 删除一个文件夹及其中的所有邮件。
132
+ *
133
+ * @param folderName 待删除文件夹的完整路径
134
+ * @returns 删除完成后 resolve
135
+ */
62
136
  export declare function imapDeleteFolder(folderName: string): Promise<void>;
63
137
 
138
+ /**
139
+ * 重命名 / 移动一个文件夹。
140
+ *
141
+ * @param oldName 原文件夹完整路径
142
+ * @param newName 新文件夹完整路径
143
+ * @returns 重命名完成后 resolve
144
+ */
64
145
  export declare function imapRenameFolder(
65
146
  oldName: string,
66
147
  newName: string
67
148
  ): Promise<void>;
68
149
 
150
+ /**
151
+ * 订阅一个文件夹(出现在大多数客户端的默认列表中)。
152
+ *
153
+ * @param folderName 待订阅文件夹的完整路径
154
+ * @returns 订阅完成后 resolve
155
+ */
69
156
  export declare function imapSubscribeFolder(folderName: string): Promise<void>;
70
157
 
158
+ /**
159
+ * 取消订阅一个文件夹。
160
+ *
161
+ * @param folderName 待取消订阅文件夹的完整路径
162
+ * @returns 取消订阅完成后 resolve
163
+ */
71
164
  export declare function imapUnsubscribeFolder(
72
165
  folderName: string
73
166
  ): Promise<void>;
74
167
 
168
+ /**
169
+ * 拉取邮件列表。
170
+ *
171
+ * @param options 查询条件(范围 / 分页 / 时间过滤 / 加载哪些部分)
172
+ * @returns 匹配的邮件列表(按 UID 从新到旧排序)
173
+ */
75
174
  export declare function imapFetchEmails(
76
175
  options: FetchEmailsOptions
77
176
  ): Promise<Email[]>;
78
177
 
178
+ /**
179
+ * 按 UID 获取单封邮件。
180
+ *
181
+ * @param uid 邮件的 UID
182
+ * @returns 邮件内容;UID 不存在时返回 `null`
183
+ */
79
184
  export declare function imapFetchEmailByUID(
80
185
  uid: number
81
186
  ): Promise<Email | null>;
82
187
 
188
+ /**
189
+ * 按条件搜索邮件。
190
+ *
191
+ * @param criteria 搜索条件(关键字、发件人、时间、标记等,多个条件为「且」)
192
+ * @returns 匹配的邮件列表(默认按 UID 从新到旧排序)
193
+ */
83
194
  export declare function imapSearchEmails(
84
195
  criteria: SearchCriteria
85
196
  ): Promise<Email[]>;
86
197
 
198
+ /**
199
+ * 将指定邮件标记为已读。
200
+ *
201
+ * @param uids 目标邮件的 UID 列表
202
+ * @param silent 是否不触发服务器回调(避免其他客户端重复提醒),默认 false
203
+ * @returns 标记完成后 resolve
204
+ */
87
205
  export declare function imapMarkAsRead(
88
206
  uids: number[],
89
207
  silent?: boolean
90
208
  ): Promise<void>;
91
209
 
210
+ /**
211
+ * 添加或移除星标(`\\Flagged`)。
212
+ *
213
+ * @param uids 目标邮件的 UID 列表
214
+ * @param flagged `true` 加星标,`false` 取消星标
215
+ * @returns 标记完成后 resolve
216
+ */
92
217
  export declare function imapMarkAsFlagged(
93
218
  uids: number[],
94
219
  flagged: boolean
95
220
  ): Promise<void>;
96
221
 
222
+ /**
223
+ * 将邮件移动到另一个文件夹(原文件夹中的邮件被移除)。
224
+ *
225
+ * @param uids 目标邮件的 UID 列表
226
+ * @param destinationMailbox 目标文件夹的完整路径
227
+ * @returns 移动完成后 resolve
228
+ */
97
229
  export declare function imapMoveEmails(
98
230
  uids: number[],
99
231
  destinationMailbox: string
100
232
  ): Promise<void>;
101
233
 
234
+ /**
235
+ * 将邮件复制到另一个文件夹(原邮件保留)。
236
+ *
237
+ * @param uids 目标邮件的 UID 列表
238
+ * @param destinationMailbox 目标文件夹的完整路径
239
+ * @returns 复制完成后 resolve
240
+ */
102
241
  export declare function imapCopyEmails(
103
242
  uids: number[],
104
243
  destinationMailbox: string
105
244
  ): Promise<void>;
106
245
 
246
+ /**
247
+ * 删除指定邮件(标记 `\\Deleted` 并执行 expunge)。
248
+ *
249
+ * @param uids 目标邮件的 UID 列表
250
+ * @returns 逐封操作的结果统计
251
+ */
107
252
  export declare function imapDeleteEmails(
108
253
  uids: number[]
109
254
  ): Promise<BatchResult>;
110
255
 
256
+ /**
257
+ * 永久清除当前邮箱中被标记为删除的邮件。
258
+ *
259
+ * @returns 清理完成后 resolve
260
+ */
111
261
  export declare function imapExpunge(): Promise<void>;
112
262
 
263
+ /**
264
+ * 获取单个附件内容。
265
+ *
266
+ * @param uid 所属邮件的 UID
267
+ * @param partId 附件在邮件体中的部分 ID(来自 `Email.attachments[].partId`)
268
+ * @returns 附件内容;不存在时返回 `null`
269
+ */
113
270
  export declare function imapFetchAttachments(
114
271
  uid: number,
115
272
  partId: string
116
273
  ): Promise<Attachment | null>;
117
274
 
275
+ /**
276
+ * 获取一封邮件的全部附件。
277
+ *
278
+ * @param uid 邮件的 UID
279
+ * @returns 附件列表
280
+ */
118
281
  export declare function imapFetchAllAttachments(
119
282
  uid: number
120
283
  ): Promise<Attachment[]>;
121
284
 
285
+ /**
286
+ * 开启 IMAP IDLE 实时监听,邮箱发生变化时触发回调。
287
+ *
288
+ * @param callback 收到新通知时调用(新邮件、删除、标记变化、连接断开等)
289
+ * @returns 监听建立后 resolve
290
+ */
122
291
  export declare function imapIdle(
123
292
  callback: (notification: IMAPNotification) => void
124
293
  ): Promise<void>;
125
294
 
295
+ /**
296
+ * 停止 IDLE 实时监听。
297
+ *
298
+ * @returns 监听停止后 resolve
299
+ */
126
300
  export declare function imapStopIdle(): Promise<void>;
127
301
 
302
+ /**
303
+ * 查询邮箱配额。
304
+ *
305
+ * @param root 配额根名称;不传时使用服务器默认根
306
+ * @returns 配额信息(存储用量 / 上限)
307
+ */
128
308
  export declare function imapGetQuota(root?: string): Promise<QuotaInfo>;
129
309
 
310
+ /**
311
+ * 将一封原始 MIME 邮件追加到指定文件夹。
312
+ *
313
+ * @param mailbox 目标文件夹完整路径
314
+ * @param rawMimeData 原始 MIME 二进制内容
315
+ * @param flags 附加的标记列表,如 `['\\Seen']`
316
+ * @returns 追加成功后服务器分配的 UID 等元数据
317
+ */
130
318
  export declare function imapAppendMessage(
131
319
  mailbox: string,
132
320
  rawMimeData: ArrayBuffer,
@@ -135,21 +323,67 @@ export declare function imapAppendMessage(
135
323
 
136
324
  // ─── SMTP ──────────────────────────────────────────────────
137
325
 
326
+ /**
327
+ * 建立 SMTP 连接。
328
+ *
329
+ * @param config 服务器连接配置(主机、端口、账号、加密方式等)
330
+ * @returns 连接结果,含服务器能力与支持的认证方法信息
331
+ */
138
332
  export declare function smtpConnect(
139
333
  config: SMTPConfig
140
334
  ): Promise<SMTPConnectionResult>;
141
335
 
336
+ /**
337
+ * 断开当前 SMTP 连接并清理会话。
338
+ *
339
+ * @returns 断开完成后 resolve;未连接时调用也安全
340
+ */
142
341
  export declare function smtpDisconnect(): Promise<void>;
143
342
 
343
+ /**
344
+ * 发送一封邮件。
345
+ *
346
+ * @param options 发信选项(发件人、收件人、主题、正文、附件、优先级等)
347
+ * @returns 发送结果;`success === false` 时带 `error`
348
+ */
144
349
  export declare function smtpSendMail(
145
350
  options: SendMailOptions
146
351
  ): Promise<SendMailResult>;
147
352
 
353
+ /**
354
+ * 验证当前 SMTP 连接是否仍可用。
355
+ *
356
+ * @returns `true` 表示连接正常可用
357
+ */
148
358
  export declare function smtpVerifyConnection(): Promise<boolean>;
149
359
 
150
360
  // ─── Web 专属(原生平台为 undefined) ─────────────────────
151
361
 
362
+ /**
363
+ * 设置 Web 端代理服务器地址。
364
+ *
365
+ * 仅在 Web 平台可用;原生平台此值为 `undefined`。
366
+ * 例如 `setProxyUrl('http://localhost:3987')`。
367
+ */
152
368
  export declare const setProxyUrl: ((url: string) => void) | undefined;
369
+
370
+ /**
371
+ * 获取当前 Web 端代理服务器地址。
372
+ *
373
+ * 仅在 Web 平台可用;原生平台此值为 `undefined`。
374
+ */
153
375
  export declare const getProxyUrl: (() => string) | undefined;
376
+
377
+ /**
378
+ * IMAP 未连接错误类,可用于 `instanceof` 判断。
379
+ *
380
+ * 仅在 Web 平台可用;原生平台此值为 `undefined`。
381
+ */
154
382
  export declare const ImapNotConnectedError: (new () => Error) | undefined;
383
+
384
+ /**
385
+ * SMTP 未连接错误类,可用于 `instanceof` 判断。
386
+ *
387
+ * 仅在 Web 平台可用;原生平台此值为 `undefined`。
388
+ */
155
389
  export declare const SmtpNotConnectedError: (new () => Error) | undefined;