using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Amazon.SimpleEmail; using Amazon.SimpleEmail.Model; using System.IO; namespace AWSSDKDocSamples.SES { class SESSamples : ISample { public static void SESSendEmail() { #region SESSendEmail var sesClient = new AmazonSimpleEmailServiceClient(); var dest = new Destination { ToAddresses = new List<string>() { "janedoe@example.com" }, CcAddresses = new List<string>() { "richarddoe@example.com" } }; var from = "johndoe@example.com"; var subject = new Content("You're invited to the meeting"); var body = new Body(new Content("Please join us Monday at 7:00 PM.")); var msg = new Message(subject, body); var request = new SendEmailRequest { Destination = dest, Message = msg, Source = from }; sesClient.SendEmail(request); #endregion } public static void SESSendRawEmail() { #region SESSendRawEmail // using System.IO; var sesClient = new AmazonSimpleEmailServiceClient(); var stream = new MemoryStream( Encoding.UTF8.GetBytes("From: johndoe@example.com\n" + "To: janedoe@example.com\n" + "Subject: You're invited to the meeting\n" + "Content-Type: text/plain\n\n" + "Please join us Monday at 7:00 PM.") ); var raw = new RawMessage { Data = stream }; var to = new List<string>() { "janedoe@example.com" }; var from = "johndoe@example.com"; var request = new SendRawEmailRequest { Destinations = to, RawMessage = raw, Source = from }; sesClient.SendRawEmail(request); #endregion } public static void SESGetSendQuota() { #region SESGetSendQuota var sesClient = new AmazonSimpleEmailServiceClient(); var response = sesClient.GetSendQuota(); Console.WriteLine("Maximum emails that can be sent each 24 hours: " + response.Max24HourSend); Console.WriteLine("Maximum emails that can be sent per second: " + response.MaxSendRate); Console.WriteLine("Number of emails sent in last 24 hours: " + response.SentLast24Hours); #endregion Console.ReadLine(); } public static void SESSetIdentityFeedbackForwardingEnabled() { #region SESSetIdentityFeedbackForwardingEnabled var sesClient = new AmazonSimpleEmailServiceClient(); var request = new SetIdentityFeedbackForwardingEnabledRequest { ForwardingEnabled = true, Identity = "johndoe@example.com" }; sesClient.SetIdentityFeedbackForwardingEnabled(request); #endregion } public static void SESListIdentities() { #region SESListIdentities var sesClient = new AmazonSimpleEmailServiceClient(); var response = sesClient.ListIdentities(); if (response.Identities.Count > 0) { Console.WriteLine("Identities:"); foreach (var identity in response.Identities) { Console.WriteLine(" " + identity); } } #endregion Console.ReadLine(); } public static void SESListVerifiedEmailAddresses() { #region SESListVerifiedEmailAddresses var sesClient = new AmazonSimpleEmailServiceClient(); var response = sesClient.ListVerifiedEmailAddresses(); if (response.VerifiedEmailAddresses.Count > 0) { Console.WriteLine("Verified email addresses:"); foreach (var address in response.VerifiedEmailAddresses) { Console.WriteLine(" " + address); } } #endregion Console.ReadLine(); } public static void SESGetSendStatistics() { #region SESGetSendStatistics var sesClient = new AmazonSimpleEmailServiceClient(); var response = sesClient.GetSendStatistics(); Console.WriteLine("For request " + response.ResponseMetadata.RequestId + ":"); if (response.SendDataPoints.Count > 0) { foreach (var point in response.SendDataPoints) { Console.WriteLine(); Console.WriteLine("Data points for " + point.Timestamp + ":"); Console.WriteLine(" Bounces: " + point.Bounces); Console.WriteLine(" Complaints: " + point.Complaints); Console.WriteLine(" Delivery Attempts: " + point.DeliveryAttempts); Console.WriteLine(" Rejects: " + point.Rejects); } } else { Console.WriteLine("No data points."); } #endregion Console.ReadLine(); } public static void SESGetIdentityNotificationAttributes() { #region SESGetIdentityNotificationAttributes var sesClient = new AmazonSimpleEmailServiceClient(); var idsResponse = sesClient.ListIdentities(); if (idsResponse.Identities.Count > 0) { var request = new GetIdentityNotificationAttributesRequest { Identities = idsResponse.Identities }; var response = sesClient.GetIdentityNotificationAttributes(request); foreach (var attr in response.NotificationAttributes) { Console.WriteLine(attr.Key); Console.WriteLine(" Bounce Topic: " + attr.Value.BounceTopic); Console.WriteLine(" Complaint Topic: " + attr.Value.ComplaintTopic); Console.WriteLine(" Forwarding Enabled: " + attr.Value.ForwardingEnabled); Console.WriteLine(); } } #endregion Console.ReadLine(); } public static void SESSetIdentityDkimEnabled() { #region SESSetIdentityDkimEnabled var sesClient = new AmazonSimpleEmailServiceClient(); var request = new SetIdentityDkimEnabledRequest { DkimEnabled = false, Identity = "johndoe@example.com" }; sesClient.SetIdentityDkimEnabled(request); #endregion } public static void SESGetIdentityVerificationAttributes() { #region SESGetIdentityVerificationAttributes var sesClient = new AmazonSimpleEmailServiceClient(); var idsResponse = sesClient.ListIdentities(); if (idsResponse.Identities.Count > 0) { var request = new GetIdentityVerificationAttributesRequest { Identities = idsResponse.Identities }; var response = sesClient.GetIdentityVerificationAttributes(request); foreach (var attr in response.VerificationAttributes) { Console.WriteLine(attr.Key); Console.WriteLine(" Verification Status: " + attr.Value.VerificationStatus.Value); Console.WriteLine(" Verification Token: " + attr.Value.VerificationToken); Console.WriteLine(); } }; #endregion Console.ReadLine(); } public static void SESVerifyEmailAddress() { #region SESVerifyEmailAddress var sesClient = new AmazonSimpleEmailServiceClient(); var request = new VerifyEmailAddressRequest { EmailAddress = "johndoe@example.com" }; sesClient.VerifyEmailAddress(request); #endregion } public static void SESVerifyEmailIdentity() { #region SESVerifyEmailIdentity var sesClient = new AmazonSimpleEmailServiceClient(); var request = new VerifyEmailIdentityRequest { EmailAddress = "johndoe@example.com" }; sesClient.VerifyEmailIdentity(request); #endregion } public static void SESGetIdentityDkimAttributes() { #region SESGetIdentityDkimAttributes var sesClient = new AmazonSimpleEmailServiceClient(); var idsResponse = sesClient.ListIdentities(); if (idsResponse.Identities.Count > 0) { var request = new GetIdentityDkimAttributesRequest { Identities = idsResponse.Identities }; var response = sesClient.GetIdentityDkimAttributes(request); foreach (var attr in response.DkimAttributes) { Console.WriteLine(attr.Key); Console.WriteLine(" DKIM Enabled: " + attr.Value.DkimEnabled); Console.WriteLine(" DKIM Verification Status: " + attr.Value.DkimVerificationStatus.Value); if (attr.Value.DkimTokens.Count > 0) { Console.WriteLine(" DKIM Tokens: "); foreach (var token in attr.Value.DkimTokens) { Console.WriteLine(" " + token); } } Console.WriteLine(); } }; #endregion Console.ReadLine(); } public static void SESSetIdentityNotificationTopic() { #region SESSetIdentityNotificationTopic var sesClient = new AmazonSimpleEmailServiceClient(); var bounceRequest = new SetIdentityNotificationTopicRequest { Identity = "johndoe@example.com", NotificationType = NotificationType.Bounce, SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" }; sesClient.SetIdentityNotificationTopic(bounceRequest); var complaintRequest = new SetIdentityNotificationTopicRequest { Identity = "johndoe@example.com", NotificationType = NotificationType.Complaint, SnsTopic = "arn:aws:sns:us-east-1:80398EXAMPLE:CodingTestResults" }; sesClient.SetIdentityNotificationTopic(complaintRequest); #endregion } public static void SESDeleteVerifiedEmailAddress() { #region SESDeleteVerifiedEmailAddress var sesClient = new AmazonSimpleEmailServiceClient(); var request = new DeleteVerifiedEmailAddressRequest { EmailAddress = "johndoe@example.com" }; sesClient.DeleteVerifiedEmailAddress(request); #endregion } public static void SESVerifyDomainIdentity() { #region SESVerifyDomainIdentity var sesClient = new AmazonSimpleEmailServiceClient(); var request = new VerifyDomainIdentityRequest { Domain = "example.com" }; var response = sesClient.VerifyDomainIdentity(request); Console.WriteLine("Verification token: " + response.VerificationToken); #endregion Console.ReadLine(); } public static void SESVerifyDomainDkim() { #region SESVerifyDomainDkim var sesClient = new AmazonSimpleEmailServiceClient(); var request = new VerifyDomainDkimRequest { Domain = "example.com" }; var response = sesClient.VerifyDomainDkim(request); Console.WriteLine("DKIM tokens:"); foreach (var token in response.DkimTokens) { Console.WriteLine(" " + token); } #endregion Console.ReadLine(); } public static void SESDeleteIdentity() { #region SESDeleteIdentity var sesClient = new AmazonSimpleEmailServiceClient(); var request = new DeleteIdentityRequest { Identity = "johndoe@example.com" }; sesClient.DeleteIdentity(request); #endregion } #region ISample Members public virtual void Run() { } #endregion } }