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); } }
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); } }
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); } }
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); } }