|Hi, just to be clear I'm not referring explicitly to 'newsletters'.|
I've been working on a (bulletproof) solution to orchestrate sending out e-mails programmatically for the past couple of months. Although I've built working proof of concepts', I'm still not entirely satisfied with my progress and the working of said proofs.
I would be delighted to hear how you manage e-mails in your software. Do you stick with the philosophy that e-mails should just be sent or have you devised an abstraction to handle it for you?
Do you stick with a provided SMTP server (ex. for shared hosting) or do you use dedicated services (ex. Amazon SES, Sendgrid, Google AppEngine, etc.)? I've been primarily using Amazon SES as it's pretty cheap and now with the Amazon SNS integration to notify regarding e-mail send statuses it's definitely my first choice.
What kind of e-mails are you sending out?
What are you doing to cater for spam filtering (ex. SenderId, DKIM signing, sending e-mails 1 for 1 to avoid bulk e-mail junk classification etc.) or do you cater for it at all?
What approach are you following to comply with electronic communication laws? As far as I know for general compliance it is required to send e-mails with personalized links (ex. unsubscribe for newsletters, manage communication preferences for system generated e-mails).
Do you gather analytics on your e-mails? If so, what do you use? Do you track opens/reads via personalized links, transparent gifs with query parameters or both? Do you customize the links for e-mail analytics purposes? (ex. to see which call of action is most effective)
Does your e-mail implementation cater for idempotency? Do you cater for bulk sending functionality and how do you manage it? (ex. grouping multiple e-mails under a task)