When a document is added to the collection, the extension picks it up for email
delivery processing. The extension creates and updates a delivery 
field in the
document as it processes the email.
Email delivery processing
The delivery 
field can be populated with the following fields:
-  state:One of PENDING,PROCESSING,SUCCESS, orERROR.
- startTime:Timestamp when email processing began.
-  endTime:Timestamp when email processing completed (that is, ended in either a SUCCESSorERRORstate).
- error:If there was an email delivery error, an error message will be populated here.
- attempts:Number of delivery attempts for this email.
-  leaseExpireTime:In case of a hang or timeout, the time at which a PROCESSINGstate should be considered an error.
-  info:After successful email delivery (to at least one address), this field will be populated with the following fields: - messageId:The message ID of the delivered email.
- accepted:Array of email addresses to which the email was successfully delivered.
- rejected:Array of email addresses to which the email could not be delivered.
- pending:Array of email addresses that were temporarily rejected by SMTP.
- response:The last response from the SMTP server.
 
An email will typically go from PENDING 
to PROCESSING 
to either SUCCESS 
or ERROR 
. Once in the SUCCESS 
or ERROR 
state, additional changes to the
document will not trigger the extension to send another email. To resend an
email with document updates, you can change the state 
to PENDING 
or RETRY 
.
Manual retries
There are instances in which email delivery fails in a recoverable fashion or
the document can be manually corrected for proper delivery with minor
modifications. While retries are not automatic, you can manually change the state 
in the delivery 
field to RETRY 
so that the extension attempts email
delivery again (and increments the number of attempts 
).

