/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { SendRawEmailResponse response = new SendRawEmailResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.IsStartElement) { if (context.TestExpression("SendRawEmailResult", 2)) { UnmarshallResult(context, response); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context); } } } return(response); }
private static void UnmarshallResult(XmlUnmarshallerContext context, SendRawEmailResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.ReadAtDepth(originalDepth)) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("MessageId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.MessageId = unmarshaller.Unmarshall(context); continue; } } } return; }
private async Task <SendRawEmailResponse> SendEmail(EmailMessage emailMessage) { var sendRequest = new SendRawEmailRequest { RawMessage = new RawMessage(_emailBuilder.BuildMessageToStream(emailMessage)) }; try { SendRawEmailResponse response = new SendRawEmailResponse { HttpStatusCode = HttpStatusCode.OK }; if (_sendAmazonEmails) { response = await _amazonSimpleEmailService.SendRawEmailAsync(sendRequest); } LogResponse(response); return(response); } catch (Exception exception) { _logger.LogError($"An error occurred trying to send an email to Amazon SES. \n{exception.Message}"); return(new SendRawEmailResponse { HttpStatusCode = HttpStatusCode.BadRequest }); } }
/// <summary> /// <para>Sends an email message, with header and content specified by the /// client. The <c>SendRawEmail</c> action is useful for sending multipart /// MIME emails, with attachments or inline content.</para> <para>The raw /// text of the message must comply with Internet email standards; /// otherwise, the message cannot be sent. For more information, go to /// the Amazon SES Developer Guide.</para> /// </summary> /// /// <param name="sendRawEmailRequest">Container for the necessary /// parameters to execute the SendRawEmail service method on /// AmazonSimpleEmailService.</param> /// /// <returns>The response from the SendRawEmail service method, as /// returned by AmazonSimpleEmailService.</returns> /// /// <exception cref="MessageRejectedException"/> public SendRawEmailResponse SendRawEmail(SendRawEmailRequest sendRawEmailRequest) { IRequest <SendRawEmailRequest> request = new SendRawEmailRequestMarshaller().Marshall(sendRawEmailRequest); SendRawEmailResponse response = Invoke <SendRawEmailRequest, SendRawEmailResponse> (request, this.signer, SendRawEmailResponseUnmarshaller.GetInstance()); return(response); }
/// <summary> /// Envia um email para os destinatarios /// </summary> /// <param name="msg"></param> /// <param name="phone"></param> /// <returns></returns> public static bool SendEmail(string from, string subject, List <string> toList, string body, MemoryStream attachment = null, string fileName = null, string fromDisplayName = null, string contentType = null) { bool sent = false; try { if (string.IsNullOrWhiteSpace(subject) || toList == null || toList.Count > 45 || string.IsNullOrWhiteSpace(body)) { ServiceHelper.ThrowError("INVALID_MESSAGE_PARAMETERS: " + subject + ", " + toList + ", " + (body.Length > 100 ? body.Substring(0, 100) : body)); } MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(from); if (!string.IsNullOrWhiteSpace(fromDisplayName)) { mailMessage.From = new MailAddress(from, fromDisplayName); } else { mailMessage.From = new MailAddress(from); } mailMessage.Subject = subject; mailMessage.SubjectEncoding = Encoding.UTF8; mailMessage.BodyEncoding = Encoding.UTF8; mailMessage.IsBodyHtml = true; AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, Encoding.UTF8, "text/html"); htmlView.ContentType.CharSet = Encoding.UTF8.WebName; mailMessage.AlternateViews.Add(htmlView); //mailMessage.Attachments.Add(new Attachment(attachment,new ContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))); // mailMessage.Attachments.Add(new System.Net.Mail.Attachment(attachment, fileName, MediaTypeNames.Application.Octet)); // mailMessage.Attachments.Add RawMessage rawMessage = new RawMessage(); using (MemoryStream memoryStream = BuildRawMailHelper.ConvertMailMessageToMemoryStream(mailMessage)) { rawMessage.Data = memoryStream; } SendRawEmailRequest request = new SendRawEmailRequest(); request.RawMessage = rawMessage; request.Destinations = toList; request.Source = from; SendRawEmailResponse response = AWSFactory.SESClient.SendRawEmail(request); return(true); } catch (Exception ex) { sent = false; Logger.LogException(ex); } return(sent); }
public static string sendInvEmail(string email, string subject, string msg, string attach1, string attach2) { try { Amazon.SimpleEmail.AmazonSimpleEmailServiceConfig config = new Amazon.SimpleEmail.AmazonSimpleEmailServiceConfig(); config.RegionEndpoint = Amazon.RegionEndpoint.USEast1; Amazon.SimpleEmail.AmazonSimpleEmailServiceClient client = new Amazon.SimpleEmail.AmazonSimpleEmailServiceClient("AKIAI6NU4VLLI32AI2UA", Cryptography.Decrypt("NdL0xWLhvbF6pvu3hw1FtluhPmUc1jAuWKgj6mb4V89KztEq6MjEhQoiCPLVv4y9"), config); var stream = new MemoryStream(); MimeMessage objMessage = new MimeMessage(); string[] emls = email.Split(','); foreach (string eml in emls) { objMessage.To.Add(new MailboxAddress(string.Empty, eml)); } objMessage.From.Add(new MailboxAddress("InfnIT Invoice", "*****@*****.**")); objMessage.Subject = subject; BodyBuilder emailBodyObj = new BodyBuilder(); emailBodyObj.HtmlBody = msg; emailBodyObj.Attachments.Add(attach1); emailBodyObj.Attachments.Add(attach2); objMessage.Body = emailBodyObj.ToMessageBody(); objMessage.WriteTo(stream); Amazon.SimpleEmail.Model.SendRawEmailRequest mailObj = new Amazon.SimpleEmail.Model.SendRawEmailRequest(new RawMessage(stream)); SendRawEmailResponse response = client.SendRawEmail(mailObj); string res = response.MessageId; System.Net.Mail.MailMessage aMessage = new System.Net.Mail.MailMessage(); aMessage.From = new System.Net.Mail.MailAddress("*****@*****.**", "InfnIT Invoice"); //aMessage.To.Add(email); //aMessage.ReplyTo = new System.Net.Mail.MailAddress("*****@*****.**"); //aMessage.Subject = subject; //System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(msg, System.Text.Encoding.UTF8, "text/html"); //aMessage.IsBodyHtml = true; //aMessage.BodyEncoding = System.Text.Encoding.UTF8; //aMessage.Attachments.Add(new System.Net.Mail.Attachment(attach1)); //aMessage.Attachments.Add(new System.Net.Mail.Attachment(attach2)); //aMessage.AlternateViews.Add(htmlView); //System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(); //mailClient.Host = "smtp.gmail.com"; //mailClient.Port = 587; //mailClient.EnableSsl = true; //mailClient.Credentials = new System.Net.NetworkCredential("*****@*****.**", "m4iling2"); //mailClient.Send(aMessage); return("success");//downloadCfdi += "<p>Correo enviado"; } catch (Exception ex) { return(ex.Message); //downloadCfdi += "<p><i class=\"w3-red\">No se pudo enviar el correo: +" + ex.Message + "</i>"; } }
private void LogResponse(SendRawEmailResponse response) { if (response.HttpStatusCode == HttpStatusCode.OK) { _logger.LogInformation($"An email was sent to Amazon SES with message id: {response.MessageId} and request id {response.ResponseMetadata?.RequestId}"); } else { _logger.LogWarning($"There was a problem sending an email, message id: {response.MessageId} and request id: {response.ResponseMetadata?.RequestId} and status code {response.HttpStatusCode}"); } }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { SendRawEmailResponse response = new SendRawEmailResponse(); while (context.Read()) { if (context.IsStartElement) { if (context.TestExpression("SendRawEmailResult", 2)) { response.SendRawEmailResult = SendRawEmailResultUnmarshaller.GetInstance().Unmarshall(context); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context); } } } return(response); }
/// <summary> /// Sends a raw email. /// </summary> /// <param name="request"> /// A <see cref="SendRawEmailRequest" /> object. /// </param> /// <returns> /// The unique <see cref="Message" /> ID for the email. /// </returns> internal string SendRawEmail(SendRawEmailRequest request) { SendRawEmailResponse response = _sesClient.SendRawEmail(request); return(response != null && response.SendRawEmailResult != null ? response.SendRawEmailResult.MessageId : string.Empty); }