[ ] Track email state such as delivery, open, bounces, etc.
[ ] Keep track of all emails sent in the database.
[ ] Allow users to unsubscribe and resubscribe from emails via a webpage.
[ ] In the past, only a unsubscribe link was used. Email clients will crawl links sent in emails, which resulted in many people being unsubscribed by their email client simply by the client fetching the link.
[ ] Instead, we will have a webpage that allows people to adjust their email preferences.
[ ] This page will have a unique code that identifies the user. It will have the ability to unsubscribe from emails, and to resubscribe to emails if the user already unsubscribed.
[ ] This webpage with the unique user link will be added to every single email that gets sent out.
[x] Email Rendering
[ ] Inbound email parsing. Using Sendgrid webhooks, the system will perform actions when we receive an email at specific destinations such as contact@khe.io and support@khe.io. The email staff@khe.io will not be included, as we receive many important emails there and this is usually used for one-on-one email conversations for organizers who have GSuite access, such as the sponsorship team.
[ ] This could very easily break without being noticed. As such, the system should email itself at a set interval and send out an alert if something goes wrong. #33
[ ] Ticket system replies will go out from support@khe.io with the ticket ID listed somewhere in the email. It must be inserted in a unique way that it can be matched by a Regex so replies to ticket emails will be properly registered and appended to the ticket itself.
contact@khe.io
andsupport@khe.io
. The emailstaff@khe.io
will not be included, as we receive many important emails there and this is usually used for one-on-one email conversations for organizers who have GSuite access, such as the sponsorship team.support@khe.io
with the ticket ID listed somewhere in the email. It must be inserted in a unique way that it can be matched by a Regex so replies to ticket emails will be properly registered and appended to the ticket itself.