public static void ExecuteService(ValidationResult validationResult, AmazonSimpleEmailService amazonSimpleEmailService) { if (validationResult.Option == ExecuteOptions.Help) { Output.ShowHelp(); return; } if (amazonSimpleEmailService == null) { Output.ShowCredentialsError(); return; } IExecute service = GetServiceFromOption(validationResult.Option); AmazonWebServiceResponse response = null; if (service != null) { try { response = service.ExecuteService(validationResult, amazonSimpleEmailService); } catch (AmazonSimpleEmailServiceException e) { Console.WriteLine("{0}:{1}", e.ErrorType, e.Message); } } else { Output.ShowUnknown(); } if (response != null) { Output.Write(response,validationResult.Verbose); } }
public AmazonWebServiceResponse ExecuteService(ValidationResult param, AmazonSimpleEmailService emailService) { var destination = new Destination() .WithToAddresses(param.EmailAddresses) .WithCcAddresses(param.CC) .WithBccAddresses(param.BCC); emailService.SendEmail(new SendEmailRequest(param.SenderEmail,destination, GetMessage(param.Subject, param.Body))); return null; }
public static Boolean SendEmail(String From, String To, String Subject, String Text = null, String HTML = null, String emailReplyTo = null, String returnPath = null) { if (Text != null || HTML != null) { String from = From; List <String> to = To .Replace(", ", ",") .Split(',') .ToList(); Destination destination = new Destination(); destination.WithToAddresses(to); //destination.WithCcAddresses(cc); //destination.WithBccAddresses(bcc); Content subject = new Content(); subject.WithCharset("UTF-8"); subject.WithData(Subject); Body body = new Body(); if (HTML != null) { Content html = new Content(); html.WithCharset("UTF-8"); html.WithData(HTML); body.WithHtml(html); } if (Text != null) { Content text = new Content(); text.WithCharset("UTF-8"); text.WithData(Text); body.WithText(text); } Message message = new Message(); message.WithBody(body); message.WithSubject(subject); string awsAccessKey = AWSAccessKey; string awsSecretKey = AWSSecretKey; //AmazonSimpleEmailService ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(AppConfig["AWSAccessKey"], AppConfig["AWSSecretKey"]); AmazonSimpleEmailService ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(awsAccessKey, awsSecretKey); SendEmailRequest request = new SendEmailRequest(); request.WithDestination(destination); request.WithMessage(message); request.WithSource(from); if (emailReplyTo != null) { List <String> replyto = emailReplyTo .Replace(", ", ",") .Split(',') .ToList(); request.WithReplyToAddresses(replyto); } if (returnPath != null) { request.WithReturnPath(returnPath); } try { SendEmailResponse response = ses.SendEmail(request); SendEmailResult result = response.SendEmailResult; Console.WriteLine("Email sent."); Console.WriteLine(String.Format("Message ID: {0}", result.MessageId)); return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); throw; return(false); } } Console.WriteLine("Specify Text and/or HTML for the email body!"); return(false); }
public SimpleEmailService(IEmailViewRenderer emailViewRenderer, IEmailParser emailParser, AmazonSimpleEmailService amazonSimpleEmailService) { _emailViewRenderer = emailViewRenderer; _simpleEmailService = amazonSimpleEmailService; _emailParser = emailParser; }
public SimpleEmailService(IEmailViewRenderer emailViewRenderer) { _emailViewRenderer = emailViewRenderer; _simpleEmailService = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(); _emailParser = new EmailParser(emailViewRenderer); }
private void StartMta() { // Check if there is already a thread running, if not start one to start proccessing the queue if (_mta != null && _mta.IsAlive) return; _mta = new Thread(() => { // Create an amazon ses client // Retreive send rate if (_ses == null) { _ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(AwsAccessKey, AwsSecretKey); // Try and get the sending quota from amazon // This will fail if invalid credentials are provided try { _quota = _ses.GetSendQuota(new GetSendQuotaRequest()); } catch (Exception ex) { InternalLogger.Fatal("Error retreiving send quota from amazone: {0}", ex.Message); return; } InternalLogger.Info("Amazon SES quota loaded, max send rate: {0} per second, 24 hour quota: {1}, sent in the last 24 hours: {2}", _quota.GetSendQuotaResult.MaxSendRate, _quota.GetSendQuotaResult.Max24HourSend, _quota.GetSendQuotaResult.SentLast24Hours); } while (true) { // Try and get a message from the queue // will fail if there are no messages to send Message message = null; try { message = (Message)_queue.Dequeue(); } catch (Exception ex) { InternalLogger.Error("Error dequeuing message: {0}", ex.Message); return; } var request = new SendEmailRequest(); request.WithDestination(new Destination(To.Split(',').ToList())); request.WithMessage(message); request.WithSource(From); try { var response = _ses.SendEmail(request); var result = response.SendEmailResult; InternalLogger.Debug("Amazon SES message sent, id: {0}", result.MessageId); } catch (Exception ex) { InternalLogger.Error("Error sending message: {0}", ex.Message); } // sleep for the required send rate quota Thread.Sleep((int)(1000 / _quota.GetSendQuotaResult.MaxSendRate)); } }); _mta.Start(); }
public static Boolean SendEmail(String From, Recipient recipient, String Subject, String Text = null, String HTML = null, String emailReplyTo = null, String returnPath = null) { if (Text != null && HTML != null) { String from = From; List <String> to = recipient.Email .Replace(", ", ",") .Split(',') .ToList(); Destination destination = new Destination(); destination.WithToAddresses(recipient.Email); //destination.WithCcAddresses(cc); //destination.WithBccAddresses(bcc); Content subject = new Content(); subject.WithCharset("UTF-8"); subject.WithData(Subject); Content html = new Content(); html.WithCharset("UTF-8"); html.WithData(HTML); Content text = new Content(); text.WithCharset("UTF-8"); text.WithData(Text); Body body = new Body(); body.WithHtml(html); body.WithText(text); Message message = new Message(); message.WithBody(body); message.WithSubject(subject); string accessKey = ConfigurationManager.AppSettings["AWSAccessKey"]; string secretKey = ConfigurationManager.AppSettings["AWSSecretKey"]; AmazonSimpleEmailService ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(accessKey, secretKey); SendEmailRequest request = new SendEmailRequest(); request.WithDestination(destination); request.WithMessage(message); request.WithSource(from); if (emailReplyTo != null) { List <String> replyto = emailReplyTo .Replace(", ", ",") .Split(',') .ToList(); request.WithReplyToAddresses(replyto); } if (returnPath != null) { request.WithReturnPath(returnPath); } try { SendEmailResponse response = ses.SendEmail(request); SendEmailResult result = response.SendEmailResult; return(true); } catch (Exception ex) { recipient.ErrorMessage = ex.Message; return(false); } } throw new Exception("Specify Text and/or HTML for the email body!"); }
/// <summary> /// Constructor. /// </summary> /// <param name="credentials"> /// A <see cref="Credentials" /> object. /// </param> internal Client(Credentials credentials) { _awsCredentials = new BasicAWSCredentials(credentials.AccessKey, credentials.SecureKey); _sesClient = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(_awsCredentials); }
///<Summary> /// Gets the answer ///</Summary> public static Boolean SendEmail(String From, String To, String Subject, String Text = null, String HTML = null, String emailReplyTo = null, String returnPath = null) { if (Text != null && HTML != null) { String from = From; List <String> to = To .Replace(", ", ",") .Split(',') .ToList(); Destination destination = new Destination(); destination.WithToAddresses(to); //destination.WithCcAddresses(cc); //destination.WithBccAddresses(bcc); Amazon.SimpleEmail.Model.Content subject = new Amazon.SimpleEmail.Model.Content(); subject.WithCharset("UTF-8"); subject.WithData(Subject); Amazon.SimpleEmail.Model.Content html = new Amazon.SimpleEmail.Model.Content(); html.WithCharset("UTF-8"); html.WithData(HTML); Amazon.SimpleEmail.Model.Content text = new Amazon.SimpleEmail.Model.Content(); text.WithCharset("UTF-8"); text.WithData(Text); Body body = new Body(); body.WithHtml(html); body.WithText(text); Amazon.SimpleEmail.Model.Message message = new Amazon.SimpleEmail.Model.Message(); message.WithBody(body); message.WithSubject(subject); AmazonSimpleEmailService ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(AppConfig["AWSAccessKey"], AppConfig["AWSSecretKey"]); SendEmailRequest request = new SendEmailRequest(); request.WithDestination(destination); request.WithMessage(message); request.WithSource(from); if (emailReplyTo != null) { List <String> replyto = emailReplyTo .Replace(", ", ",") .Split(',') .ToList(); request.WithReplyToAddresses(replyto); } if (returnPath != null) { request.WithReturnPath(returnPath); } try { SendEmailResponse response = ses.SendEmail(request); SendEmailResult result = response.SendEmailResult; return(true); } catch { return(false); } } return(false); }
public AmazonWebServiceResponse ExecuteService(ValidationResult param, AmazonSimpleEmailService emailService) { return emailService.ListVerifiedEmailAddresses(new ListVerifiedEmailAddressesRequest()); }
public AmazonWebServiceResponse ExecuteService(ValidationResult param, AmazonSimpleEmailService emailService) { MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(param.Body.ToCharArray())); emailService.SendRawEmail(new SendRawEmailRequest().WithRawMessage(new RawMessage(memoryStream))); return null; }
public AmazonWebServiceResponse ExecuteService(ValidationResult param, AmazonSimpleEmailService emailService) { emailService.VerifyEmailAddress(new VerifyEmailAddressRequest().WithEmailAddress(param.SenderEmail)); return null; }
public AmazonWebServiceResponse ExecuteService(ValidationResult param, AmazonSimpleEmailService emailService) { return emailService.GetSendStatistics(new GetSendStatisticsRequest()); }