この拡張機能は、ドキュメントがコレクションに追加されると、そのドキュメントを取得してメール配信を処理します。この拡張機能がメールを処理する際に、ドキュメントの delivery
フィールドが作成または更新されます。
メール配信の処理
delivery
フィールドには以下のフィールドが設定されます。
- state:
PENDING
、PROCESSING
、SUCCESS
、ERROR
のいずれか。 - startTime: メールの処理が開始された時刻のタイムスタンプ。
- endTime: メールの処理が完了した(
SUCCESS
またはERROR
の状態になった)時刻のタイムスタンプ。 - error: メール配信エラーが発生した場合は、ここにエラー メッセージが設定されます。
- attempts: このメールの配信試行回数。
- leaseExpireTime: ハングまたはタイムアウトが発生した場合に、
PROCESSING
状態がエラーと見なされるようにする時刻。 - info: 少なくとも 1 つのアドレスに対するメール配信が成功すると、このフィールドに以下のフィールドが設定されます。
- messageId: 配信されたメールのメッセージ ID。
- accepted: メールが正常に配信された宛先メールアドレスの配列。
- rejected: メールを配信できなかった宛先メールアドレスの配列。
- pending: SMTP によって一時的に拒否されたメールアドレスの配列。
- response: SMTP サーバーからの最後のレスポンス。
通常、メールの状態は PENDING
から PROCESSING
になり、その後 SUCCESS
または ERROR
になります。SUCCESS
または ERROR
の状態になった後は、ドキュメントに変更を加えても、新たなメールの送信はトリガーされません。ドキュメントを更新してメールを再送信するには、state
を PENDING
または RETRY
に変更します。
手動での再試行
場合によっては、メール配信の失敗が回復可能なものであったり、ドキュメントを手動で簡単に修正することで正しく配信できたりすることがあります。再試行は自動的には行われませんが、delivery
フィールドの state
を手動で RETRY
に変更すると、メールの配信が再試行されます(attempts
の数値がインクリメントされます)。