How to send bulk emails using AWS SES - amazon-web-services

I am working on SAAS based project. Previously, I have used SES for sending transactional emails. Now I wanted to send personalized marketing emails to thousands of subscribers from a mailing list.
I have checked the following API operations:
- SendEmail:
- Emails can be sent to 50 recipients per api request including to/cc/bcc.
- But in this I can't send personalized emails.
- http://s3.amazonaws.com/awsdocs/ses/latest/ses-api.pdf#API_SendEmail
- SendBulkTemplatedEmail:
- I can send personalized emails in batches to recipients and get unique message id for each recipient.
- But here I am bound to use the email template created by SES CreateTemplate api operation. There is a limit of 10K email templates per Amazon SES account. As per my requirement I would like to create templates on my own.
-https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html
None of above seems to fit for my requirement. Can you please guide how AWS can help me with this requirement.
Thanks!

Related

Email status in AWS SES

I want to track emails that are being send by SES. I want to check if the email I am sending to my client is delivered or not. I found that AWS C# sdk provides the statistics, but it doesn't provide statistics per email address.
From Monitor email sending using Amazon SES event publishing - Amazon Simple Email Service:
To enable you to track your email sending at a granular level, you can set up Amazon SES to publish email sending events to Amazon CloudWatch, Amazon Kinesis Data Firehose, or Amazon Simple Notification Service based on characteristics that you define.
You can track several types of email sending events, including sends, deliveries, opens, clicks, bounces, complaints, rejections, rendering failures, and delivery delays. This information can be useful for operational and analytical purposes. For example, you can publish your email sending data to CloudWatch and create dashboards that track the performance of your email campaigns, or you can use Amazon SNS to send you notifications when certain events occur.

For Amazon SES: Using an API to receive the list of bounced emails?

Hello is there an Amazon SES API (or some kind of webhook) which allows us to see the list of bounced emails?
I know SNS exists but that costs extra.
From Amazon SES notifications sent by email - Amazon Simple Email Service:
Amazon SES can send you email when you receive bounces and complaints by using a process called email feedback forwarding.
In order to send email using Amazon SES, you must configure it to send bounce and complaint notifications by using one of the following methods:
By enabling email feedback forwarding
By sending notifications to an Amazon SNS topic
By publishing event notifications
So, if you don't want to use an Amazon SNS topic (which is very low cost!), you could have them sent via email.

Should AWS SES bounce emails be notified by one or more methods

AWS Simple Email Service (SES): Bounce Email Notification/Feedback
I have both the following methods set up in the AWS Console to receive information about bounce emails:
1) Email Feedback forwarding - to send any bounce email details back to the sender. This is the domain or email that is managed in the AWS console and is verified. Hence the From/Source is a valid user email with a mailbox
2) SNS Notification for bounce emails - This is used to trigger a lambda function and the intention here is to get a notification on the emails that bounced and was sent from an address of a verified domain that doesn't have a mailbox e.g noreply#domain. This is automated from the software.
The lambda function forwards this notification to the reply emails that are part of the Header in the notification.
The reply emails may also contain personal email addresses that are not necessarily managed in the AWS console. Therefore the lambda is basically forwarding the notification back to all the reply emails of the user.
My issue here is that the above works but sometimes I get notifications using both methods.
Should AWS only choose one of the above two when dealing with bounces? Can someone please shed some light on this?
Thank you
Try creating a Deliverability dashboard, it now provides excel sheet to download and track your bounce emails.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/bouncecomplaintdashboard.html
The AWS documentation is not super clear with respect to simultaneously using multiple methods for bounce email notification. However, the following under 'Disabling Email Feedback Forwarding' does indicate that using more than one method for bounce notification will result in multiple notifications.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-email.html
In my case (using the above two methods for bounce email notification), When I use the SES via SMTP interface from an Asp.Net app, I get two bounce email notifications, one via SNS and the other via the Email Feedback Forwarding method. In Addition when I use an email client like MSOutlook, then I only get one bounce notification which is expected
because it's not using SES.
My solution:
Option 1:
Use both methods for SES.
The Email Feedback Forwarding method will be responsible for delivering the notification to a verified email eg user#mycompany.com with a mailbox.
The lambda triggered by the SNS method will have a filter that will only process notifications where the source is norepy#mycompany.com.
Hence this will prevent duplicates and will also allow me to forward bounce email notifications to other reply-to emails (set by the web app in the header) that are not verified in my AWS.
Option 2:
Disable Email Feedback Forwarding Method and process all notifications via lambda triggered by SNS Method.

How to track a specific email using Amazon's Simple Email Service?

I am successfully sending emails using the AWS SDK for Java and I can also retrieve the Message ID for each email. Now I need to track the email to see if it was successfully delivered or it bounced.
Is there a way to use that Message ID to track the status of a specific email?
I have explored the getSendStatistics API but this only gives statistics for all emails, ideally I need something to track individual emails.
Is there a way to track individual emails using an SES API or even a Simple Notification Service API?
You can use Amazon SES Notifications through Amazon SNS for that. You create SNS topic subscriptions depending how you want to track the deliveries and bounces.
The SNS notification content itself contains a mail object that has the message ID, a delivery object for successful deliveries, a bounce object for bounced recipients and a complaint object for complained recipients (if any).

How to check emails logs through AWS?

I have a Joomla website & it is configured to use AWS-SES for outgoing emails. Is there any way or logging by which I can check all outgoing emails from AWS/Joomla with minimum details like timestamp, sent to email id, subject.
Please let me know. Thanks
So while SES doesn't have any fully featured monitoring Suite, you can set SES up to deliver Delivery, Bounce and Complaint Notifications.
With these notifications, you can develop your own application or read the raw notifications that will show you what emails got delivered/bounced/complaints.
Full information on these notifications is available on the AWS Documentation:
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html
You can publish your email sending events to an Amazon Kinesis Data Firehose delivery stream. This will take metadata from your sent emails and write it to an S3 bucket, which should produce your desired log.
Amazon has a tutorial on implementing this process at the link below.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-kinesis-analytics.html