Mails
Mails are a fundamental part of any ecommerce solution as direct communication between the webshop and the customers, such as during a transaction. Mails in Bizzkit Mail contain a set of data necessary for properly managing them at a large scale, so no mail gets lost.
A mail consists of:
- Mail id, used to uniquely identify the mail.
- Subject, short descriptive headline of the mail.
- Addresses, in the form of multiple properties: 'From', 'To', 'CC', 'BCC' and 'Reply-to'.
- Content, which can be both HTML or plain text.
- Mail group, used to group mails by a common identifier.
- Attachments, attached files that are separate from the actual content of the mail.
- Status tracking, in the form of multiple properties: 'Enqueued at', 'Status', 'Attempts', 'Last failed at' and 'Sent at'.
- Error history, detailed information of errors that happened while attempting to send the mail.
Attachments
Attachments exist in two forms in Bizzkit Mail:
- Unique attachment, where the attachment is used on a single mail. An example could be an order confirmation, or other personalized files.
- Shared attachment, where the attachment may be used on multiple mails. An example could be terms and conditions, or other information that is always common between multiple customers.
Status tracking
A mail can have one of five different statuses:
- Enqueued, the initial status of a mail.
- Sent, the mail has been delivered succesfully.
- Failed, when a mail failed but will still be picked up in a later batch.
- Failed Permanently, when a mail has failed its max number of attempts. Typically human interaction is needed in this case, such as using the 'Resend' feature.
- Cancelled By User, when a mail was cancelled before it was sent.
Maximum number of attempts and other related options to mail sending are encompassed in the concept 'Mail policies', which you can read more about here.
Error history
Each mail has an error history, which can be helpful if mails are not getting delivered as expected. The history describes each error with: (1) when the error happened, (2) what kind of error and (3) a description which can give some pointers to how to deal with it.