/// <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;
        }
Esempio n. 3
0
        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
                });
            }
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
    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>";
        }
    }
Esempio n. 7
0
 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);
        }