コード例 #1
0
        private static bool SendRawEmail(EMAIL_Messages email, string attachPath, out string error)
        {
            error = string.Empty;
            var htmlView    = AlternateView.CreateAlternateViewFromString(email.MessageBoby, Encoding.UTF8, "text/html");
            var mailMessage = new MailMessage
            {
                From           = new MailAddress(email.MessageFrom),
                To             = { email.ToEmail },
                Subject        = email.Subject,
                AlternateViews = { htmlView }
            };

            if (attachPath.Trim() != "")
            {
                if (File.Exists(attachPath))
                {
                    var objAttach = new Attachment(attachPath)
                    {
                        ContentType = new ContentType("application/octet-stream")
                    };

                    var disposition = objAttach.ContentDisposition;

                    disposition.DispositionType  = "attachment";
                    disposition.CreationDate     = File.GetCreationTime(attachPath);
                    disposition.ModificationDate = File.GetLastWriteTime(attachPath);
                    disposition.ReadDate         = File.GetLastAccessTime(attachPath);

                    mailMessage.Attachments.Add(objAttach);
                }
            }

            var rawMessage = new RawMessage();

            using (var memoryStream = ConvertMailMessageToMemoryStream(mailMessage))
            {
                rawMessage.Data = memoryStream;
            }

            var request = new SendRawEmailRequest
            {
                RawMessage   = rawMessage,
                Destinations = new List <string> {
                    email.ToEmail
                }
                , Source = email.MessageFrom
            };

            try
            {
                _setSecurityProtocol();
                var response = _s3MailClinet.SendRawEmail(request);
                return(response.HttpStatusCode == HttpStatusCode.OK);
            }
            catch (AmazonSimpleEmailServiceException ex)
            {
                error = Utils.FormatError(ex);
                return(false);
            }
        }
コード例 #2
0
        private bool SendEmail(EMAIL_Messages email, out string error)
        {
            error = string.Empty;
            try
            {
                var emailSent = SendAmazonEmail(email, out error);

                if (emailSent)
                {
                    email.Status   = EmailEnums.eSendInterfaceStatus.Send.ToString();
                    email.SendOn   = DateTime.Now;
                    email.UpdateOn = DateTime.Now;
                }
                else
                {
                    email.Status   = EmailEnums.eSendInterfaceStatus.Failed.ToString();
                    email.Error    = error;
                    email.UpdateOn = DateTime.Now;
                }

                EmailMessageRepository.UnitOfWork.CommitAndRefreshChanges();

                return(emailSent);
            }
            catch (Exception ex)
            {
                Logger.Error("send email message", email.EmailId, ex, CommonEnums.LoggerObjectTypes.Email);
                return(false);
            }
        }
コード例 #3
0
        private bool SendAmazonEmail(EMAIL_Messages entity, out string error)
        {
            error = string.Empty;
            try
            {
                var TO      = entity.ToEmail;
                var SUBJECT = entity.Subject;
                var BODY    = entity.MessageBoby;

                // Construct an object to contain the recipient address.
                var destination = new Destination
                {
                    ToAddresses = new List <string> {
                        TO
                    }
                };

                // Create the subject and body of the message.
                var subject = new Content(SUBJECT);
                var body    = new Body
                {
                    Html = new Content(BODY)
                };

                // Create a message with the specified subject and body.
                var message = new Message
                {
                    Subject = subject
                    , Body  = body
                };

                // Assemble the email.
                var request = new SendEmailRequest
                {
                    Source        = FROM
                    , Destination = destination
                    , Message     = message
                };


                Logger.Debug("send email to " + entity.ToEmail);
                _setSecurityProtocol();
                // Send the email.
                var response = _s3MailClinet.SendEmail(request);

                Logger.Debug($"email to {entity.ToEmail} has been sent");

                return(response.HttpStatusCode == HttpStatusCode.OK);
            }
            catch (Exception ex)
            {
                error = Utils.FormatError(ex);
                Logger.Error("send email", entity.EmailId, ex, CommonEnums.LoggerObjectTypes.Email);
                return(false);
            }
        }
コード例 #4
0
        private static bool SendRawEmail(EMAIL_Messages email, MemoryStream stream, out string error)
        {
            error = string.Empty;
            var htmlView    = AlternateView.CreateAlternateViewFromString(email.MessageBoby, Encoding.UTF8, "text/html");
            var mailMessage = new MailMessage
            {
                From           = new MailAddress(email.MessageFrom),
                To             = { email.ToEmail },
                Subject        = email.Subject,
                AlternateViews = { htmlView }
            };

            if (stream.CanRead && stream.Length > 0)
            {
                stream.Seek(0, SeekOrigin.Begin);
                var ct = new ContentType
                {
                    MediaType = MediaTypeNames.Application.Pdf,
                    Name      = "certificate.pdf"
                };

                var attach = new Attachment(stream, ct);
                mailMessage.Attachments.Add(attach);

//                var objAttach = new Attachment(stream,"certificate.pdf" ,MediaTypeNames.Application.Pdf)
//                {
//                    ContentType = new ContentType("application/octet-stream")
//                };
//
//                var disposition              = objAttach.ContentDisposition;
//                disposition.CreationDate     = DateTime.Now;
//                disposition.ModificationDate = DateTime.Now;
//                disposition.ReadDate         = DateTime.Now;
//
//                disposition.DispositionType = "attachment";
//
//                mailMessage.Attachments.Add(objAttach);
            }

            var rawMessage = new RawMessage();

            using (var memoryStream = ConvertMailMessageToMemoryStream(mailMessage))
            {
                rawMessage.Data = memoryStream;
            }

            var request = new SendRawEmailRequest
            {
                RawMessage   = rawMessage,
                Destinations = new List <string> {
                    email.ToEmail
                },
                Source = email.MessageFrom
            };

            try
            {
                _setSecurityProtocol();
                var response = _s3MailClinet.SendRawEmail(request);
                stream.Close();
                stream.Dispose();
                return(response.HttpStatusCode == HttpStatusCode.OK);
            }
            catch (AmazonSimpleEmailServiceException ex)
            {
                error = Utils.FormatError(ex);
                return(false);
            }
        }