Amazon SES/Hotmail issue - amazon-web-services

Trying to send emails through Amazon SES as part of webform submission through gateway API. I have a verified email address which is my own. I have tried test emails and also through the lambda function which succeeds. But no email received. The SES console is telling me it has had no bounces. Am I missing any configuration information? is there something I'm missing or need to know? I have sent a support request to Microsoft to check on there end as well.

Related

How to bcc another recipient on an Amazon Cognito verification email

For legal reasons I need to BCC someone on my Cognito verification emails when someone signs up on my website. Is there a way to configure this in Amazon SES or Cognito? I have searched through the settings on both of the services and searched google but I haven't been able to find anything. I am wondering if maybe I should use SNS to trigger a welcome email with the compliance information after the user verifies their email, though I am still not sure if this is possible.
You will need to implement a Cognito custom email sender Lambda function. There's an example of that function using NodeJS at the above link. Having gone through this myself I would point out that it can only be done using NodeJS or Java due to the specific AWS encryption SDK needed to decode the email body in your Lambda function.
Inside that example Lambda function you can see the different event triggers the function has to handle. In the CustomEmailSender_SignUp trigger handler you would add your BCC when you send the email.
You would need to use the AWS SDK inside that code to send the emails using SES.

How to get status of emails sent via Amazon SES

I want to ask some question related to AWS SES. Please help me with my queries.
As described in the above image that we need to pay $0 for the first 62000 emails if sending email
from ec2 hosted application. How does AWS SES know that i will send email from my ec2 instance hosted
application or from somewhere else or we need to code?
How can i get the list of emails that successfully send, which emails get bounces, complaints,
rejected? Mean i want a log of my sending emails. I do not want to login in AWS and watch dashboard multiple time.
It can detect sends from Amazon EC2 based on IP address range.
For detailed logs of email sends, see: Monitoring Your Amazon SES Sending Activity - Amazon Simple Email Service
There are options for Event messages and Notifications.
You can track the mail events with event publishing. Here is a post explaining how to: https://mailintel.io/resources/tracking-deliveries-opens-and-clicks-for-amazon-ses. If you don't want to build anything yourself, you can use mailintel.io. Gives you a detailed reporting dashboard.

Send email to new sign user using AWS sns with lambda function

I am working on one project with AWS lambda function, DynamoDB, serverless architecture with the node.js runtime environment.
Now thing is that I want to send an email when a new user signup in my system for email address confirmation.
First, I tried with SES(SMTP credentials) and nodemailer module. When we try to send an email using SES then we need to verify both the email addresses(From and TO). But thing is that suppose I verify my From email address but the new signup user has a new email address, so, this when I try to send an email to the new signup user's email address then it through error like email address not verified.
So, i want to know that if I want to send an email to this new signup user how can I send the email confirmation mail?
Can I use SNS with AWS lambda and serverless architecture?
Thanks in advance for the help.
I'm suspecting your Amazon SES is still in sandbox mode. As long as you are in sandbox mode, you can only do the following things:
You can only send mail to verified email addresses and domains, or to the Amazon SES mailbox simulator.
You can send a maximum of 200 messages per 24-hour period.
You can send a maximum of 1 message per second.
To get yourself removed out of sandbox mode, you need to open a SES Sending Limits Increase case to the AWS Support center.

Amazon SES - notifications for email verification

We use Amazon's SES service, and have set up Topics and Subscriptions under SNS (Simple Notification Service) so that we get notification emails when an email is bounced or successfully delivered. That's all working fine.
We sometimes send emails via SES on behalf of one of our partners, and before we can do that we need to verify their email address. The process is that the system asks SES to send out a verification email to the person saying "Example.com wants to send emails on your behalf, is that ok?", with a link for them to click. If they click it, then that email is marked as Verified within SES, and we can use it as a from address.
What I can't work out is how to automate the process of knowing whether they've clicked the link yet. I can log in to the AWS dashboard, and go and look at the list of verified email addresses, but i'd like to make it an automated process.
What would be ideal is if it worked the same way as bounces & deliveries: that i set up a "Verification" topic, and subscribe to it so we get an email like we do with bounces and deliveries. Then, the scheduled job that deals with incoming email notifications can say "Aha, this is a verification email for foobar#example.com: I'll mark their account as 'ses-verified'".
Does anyone know if it's possible to set this up? All the docs on the SES site just talk about bounces, deliveries and complaints.
thanks, Max
You can use the GetIdentityVerification api call in the SES part of the awssdk:
https://docs.aws.amazon.com/ses/latest/APIReference/API_GetIdentityVerificationAttributes.html
You could do this in a serverless way by having a lambda function do the check, and expose the lambda as an API endpoint to your application (among other ways).
Alternatively you could just try to send a single test email to a test/internal email address and check if it gives you an error - if its not verified, it will return an error immediately when you try to do the send.
EDIT:
If you want to use the CLI instead:
aws ses get-identity-verification-attributes --identities "mailbox#thedomain.com"

AWS SES - Logging SendEmail & SendRawEmail calls (SMTP)

We've changed our email service from Mandrill to Amazon SES. We are using it with SMTP.
In Mandrill we had access to some details such as:
raw content of the emails
delivery dates
is the email viewed by the recipient
are the links in the email clicked
But in SES Management Console > Sending Statistics page it shows only the numbers without any details for deliveries, bounces, complaints & rejects.
And I've looked into CloudTrail, CloudWatch & S3 combination with no luck. Also I'm not sure if this is still valid but this page says
All Amazon SES APIs except for the email-sending APIs (SendEmail and SendRawEmail) are supported.
So I can't seem to log these data with CloudTrail.
Can I log them via another method (maybe a third party tool?). How do other people log these? Or do they? Maybe it's not possible with SMTP but possible with only API?
Example scenario
We're using multiple IAM access keys (with multiple users) for SES. Let's say there is 50% increase in complaints. Doesn't AWS offer any tool to find the culprit access key?
I had found this thread when trying to get easy access to who Amazon SES sent emails to, at what time, etc. I found the tutorials at Amazon pretty helpful:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-tutorials.html
I actually tried all four of them. I couldn't figure out how to get the CloudWatch path to actually show who the email went to, but the other ones worked. I eventually settled on the Amazon Redshift path:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift.html
It works well for me and provides an SQL query view into the "log" data. They do have a new Query tool, so you don't have to use JDBC/ODBC if you don't want to.
Hoping this will help someone else looking...
For raw content logging, you would have to proxy the SMTP requests through some service that logs everything and then sends it to SES, or just log everything in your code before making the call to SES.
For delivery rates you would have to setup SNS listeners to process SES bounce notifications.
For email viewed and links clicked you would have to build your own analytics service to add tracking to the emails you send, or find some third-party service that does that for you.
There is a reason SES is so much cheaper than other email services like Mandrill, it is because you don't get all the features that the other services provide. Honestly if you want things like click tracking analytics I would suggest you rethink moving away from Mandrill, or look at other email services like SendGrid. SES is more of a raw email sending service that doesn't provide any of those higher-level features you are looking for.