Is Amazon provide any scheduler Api for scheduling the email - amazon-ses

I'm using Amazon SES/SNS API of Amazon for sending email and getting notification.
Is Amazon provide any scheduler Api for scheduling the email for future? As i want to schedule my email by using Amazon API.

No, SES does not provide this functionality. You would need to do that yourself using a task scheduler such as the built-in windows or perhaps quartz.net if you need something more sophisticated

While they may not offer it directly in SES or SNS, they do offer similar functionality with SQS or SWF.

I made the service, huhumails.com
With HuhuMails, you can schedule your transactional emails with ease. It also makes sure emails are sent within your rate-limits. The service accepts date and timezone parameters to schedule your email at a specific time in the future.
I couldn't find anything on the market that's according to what I'm looking for and easy to use, so I created the service. I'm currently using it on my other production websites. Hopefully, it will be useful to others too.

Related

Measure AWS SES usage per domain / Per client / Sub-account

I provide SES Services to many of my clients in different regions of the world. So their apps send out emails through my AWS SES account. It has become a problem to trace out how to measure their usage and stats, IAM wise or some other ways and then be able to bill them for what they have consumed. There must be a way to break stats into some kind of Sub Accounts or something
Can someone help regarding this ?
You have two options for such fine-grained monitoring, according to the official docs:
Feedback notifications
This option allows the most detailed reporting for your billing needs. However, it also requires more work on your part, because you need to build handlers (i.e. lambda functions) which will log sending/bounces/complaints in some persistence (i.e. DynamoDB table). More details here.
Event publishing
This option uses CloudWatch for persistence and you have the (probably) familiar CloudWatch UI for reporting. You will have to enforce (somehow) your clients to use a AWS specific SMTP header or SendEmail / SendRawEmail API calls. Less work on your part but you need to find a way to make your clients help you. More details here.

Amazon SES persistent audit log

I am using Amazon SES to send transactional application emails. I want an audit log of every email sent by the system.
As an example, I might want to see a log of every email we sent to john.smith#example.com.
I followed the instructions for using Cloudwatch to log SES events. However, this only actually logs metrics, not data logs. So all I see in Cloudwatch is a graph of how many emails were sent at different times under the metrics tab. I can't search a log anywhere to find individual SES events.
I also looked into using Cloudtrail to log SES events, but Cloudtrail only logs management events. It does not log data events like emails being sent.
I have setup SNS notifications on all SES events (such as send or bounce). This is really useful, but does not achieve my aim of having a long term audit log.
As far as I can tell Amazon do not support the kind of logging I want to record. Maybe I could write events to our application database as we produce them, but it seems a shame to have to introduce my own custom logging system.
Does anyone know a way to have AWS store my SES data events?
Yes, Amazon doesn't have any easy to monitor you ask, an easier solution would be to add a Configuration set header and a unique message tag whenever any email is being sent to john.smith#example.com, In configuration set, you can enable Cloudwatch or preferred SNS Destination and create delivery dashboard using link below:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/bouncecomplaintdashboard.html
This isn't the logs but It creates a nice excel file of email details which can be used for Audit purpose.
I opened a ticket with AWS about this, here is their response.
I understand that you wanted to know whether SES provides logs about events of an email that was accepted by SES for delivery in a searchable format. Please correct me if I’m wrong.
SES provides logs as notification[1] for each event(Delivery, Bounce, Complaint) to SNS and it doesn’t provide event logs in a consolidated manner which would be helpful for indexing according to email addresses and searching purpose. However, in SNS you can configure a variety of subscriber like(Email, SQS, Lambda, HTTP endpoint) where the logs in JSON format would be delivered. In the destination of SNS like Lambda and HTTP Endpoint or email, you can parse the JSON file and store in a suitable format which would be helpful for indexing and searching purpose.
If SQS is being used, each JSON log will be stored individually in the SQS queue for some time. You can periodically query the SQS endpoint and retrieve the logs and consolidate it to a single file and use it for analysis.
Apart from that, unfortunately SES doesn’t provide any other format of logs for an email it accepted for delivery.
Do let me know if you require any further assistance, I’ll be happy to help.
References:
[1]. https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-using-notifications.html

How do I trigger an action on my application users' data sync on Amazon Cognito

I need to trigger a check on the user data sync event of Amazon Cognito. How can I hook to the sync event?
I'd like to also enhance that data in some cases for the mobile application to fetch on next sync. Is the data editable from the server (not the mobile device)?
Currently Cognito does not support triggers on sync data. If you would like to see this feature added, please request in our forums, that helps us to prioritize our roadmap.
Yes, you can edit the data using your AWS credentials (not one received from Cognito). Please refer to our blog for more details.
Thanks,
Rachit
Amazon Cognito Streams is now available to all and is the best way to trigger an action on CognitoSync. This requires creating a Kinesis Stream and then edit the Cognito Identity Pool to link the stream to it. This stream can be consumed by Lambda or a any other Kinesis consumer, like RedShift or KCL application.

How to push something to user in a rest API?

We already have a system in place that uses Restful APIs in order to send let's say SMS. All of our clients are using our server to send their requests to Rest API so we drop connections except our server IP to handle authentication.
Now policy has been changed. We want to expose our APIs to the outside world. We now want to be able to push to user under specific circumstances. Let's say that I want to send a delivery report to the user when SMS has been delivered. Or when something has been scheduled for a specific time, when that time arrives user get notified.
How to handle these notifs? Has anyone used the same or similar approach?
Assuming you can reach your clients back via HTTP. The model to do this is to use callbacks. When someone posts a scheduled job on your server, they should also post a callback URI where your server can notify when the job is complete.
Sample below:
https://schedulingSevrer.com/runSchedule?callback=http://clientserver.com/reportStatusHere
So when the job is done your callback will be like
http://clientserver.com/reportStatusHere?jobId=12345&status=complete
Or if your clients are mobile apps on Andorid you can use the Google Push notifications.

Mail Notification service available in windows azure application

i m developing one application in that one user create one task and that notify to other users which are connected to that user so windows azure provide any notification service to implement this functionality?
Azure does not provide a mail relay service, but it does support the SMTP protocol and sending e-mail through external services ; here are a few options:
Sending Email using Microsoft
Exchange :
http://blogs.msdn.com/b/windowsazure/archive/2010/10/08/adoption-program-insights-sending-emails-from-windows-azure-part-1-of-2.aspx
Sending Email from Exchange Online :
http://blogs.msdn.com/b/windowsazure/archive/2010/10/15/adoption-program-insights-sending-emails-from-windows-azure-part-2-of-2.aspx
Sending Email using 3rd party
providers (e.g. SendGrid,
AuthSMTP...)
http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving-email-in-windows-azure
This question is suspiciously similarly phrased to this one. The answer is, there are no notification services that would provide the functionality you seek out of the box.
It also links to the following answers:
http://blogs.msdn.com/b/windowsazure/archive/2010/10/08/adoption-program-insights-sending-emails-from-windows-azure-part-1-of-2.aspx?wa=wsignin1.0
http://blogs.msdn.com/b/davidlem/archive/2009/01/08/windows-azure-sending-smtp-emails.aspx
As for the notification service it depends on what you mean by notification. If you want to also pop-up a message, e.g. for chat, or a response to a query, your best bet would be to implement a storage-backed (e.g. Session store with a session state provider, or Azure Tables, even Azure SQL would do) and either print waiting notifications on each page refresh, or better yet, do that with an Ajax call. Take a look at his Stack Overflow question for some suggestions.
On a side note, if you mean notification of services, e.g. a mailer, or something else, that should fire when a user performs certain actions, you can implement the basic functionality using Azure Queues, or Azure AppFabric if you need more advanced stuff.