当某个文档被添加到集合之后,扩展程序会选取该文档进行电子邮件传送处理。在处理电子邮件时,此扩展程序会在文档中创建并更新一个 delivery
字段。
电子邮件传送处理
可以使用以下字段填充 delivery
字段:
- state:
PENDING
、PROCESSING
、SUCCESS
或ERROR
之一。 - startTime:电子邮件处理开始时间的时间戳。
- endTime:电子邮件处理完成(即以
SUCCESS
或ERROR
状态结束)时间的时间戳。 - error:如果发生电子邮件传送错误,此处会填充错误消息。
- attempts:尝试传送此电子邮件的次数。
- leaseExpireTime:如果挂起或超时,则处于
PROCESSING
状态的时间应被视为错误。 - info:成功传送电子邮件(至少发送至一个地址)后,系统将使用以下字段填充此字段:
- messageId:已传送的电子邮件的邮件 ID。
- accepted:已将电子邮件成功传送到的电子邮件地址数组。
- rejected:电子邮件无法传送到的电子邮件地址数组。
- pending:SMTP 暂时拒绝的电子邮件地址数组。
- response:来自 SMTP 服务器的最后响应。
电子邮件通常从 PENDING
发送至 PROCESSING
,然后再发送至 SUCCESS
或 ERROR
。一旦进入 SUCCESS
或 ERROR
状态,对文档进行的其他更改将不会触发扩展程序发送另一封电子邮件。要重新发送包含文档更新的电子邮件,您可以将 state
更改为 PENDING
或 RETRY
。
手动重试
在某些情况下,电子邮件在传送失败之后可以恢复,或者只需对文档进行少量的手动修改即可更正并正确传送。虽然重试不是自动进行的,但您可以手动将 delivery
字段中的 state
更改为 RETRY
,以便扩展程序再次尝试传送电子邮件(并增加 attempts
的数量)。