private bool SendEmailWithAttachment(DomainModels.Mail.Mail mail) { try { var smtp = new SmtpClient(mail.Host, mail.Port) { EnableSsl = mail.EnableSsl, Credentials = new System.Net.NetworkCredential(mail.Username, mail.Pass) }; MailAddress fromAddress = new MailAddress(mail.From, mail.FromName); MailAddress toAddress = new MailAddress(mail.To); var email = new MailMessage(fromAddress, toAddress) { Subject = mail.Subject, Body = mail.Body, IsBodyHtml = mail.IsBodyHtml }; if (!string.IsNullOrEmpty(mail.ReplyTo)) { email.ReplyToList.Add(mail.ReplyTo); } if (!string.IsNullOrEmpty(mail.AttachmentPath)) { var atch = new Attachment(mail.AttachmentPath); email.Attachments.Add(atch); } if (mail.AttachmentData != null) { Stream streamData = new MemoryStream(mail.AttachmentData); var atch = new Attachment(streamData, "byteAttachment"); email.Attachments.Add(atch); } smtp.Send(email); return(true); } catch (Exception e) { _logger.LogError(e.Message); return(false); } }
private bool SendEmailWithAttachment(string languageSign, string to, string subject, bool isBodyHtml, string body, string filePath, byte[] dataAttachment, string replyTo) { if (string.IsNullOrEmpty(body)) { _logger.LogError("SendEmailWithAttacment - No email body."); return(false); } var layout = GetMailTemplate(languageSign); layout = layout.Replace("{body}", body); var mail = new DomainModels.Mail.Mail { To = to, Subject = subject, IsBodyHtml = isBodyHtml, Body = layout, AttachmentPath = filePath, AttachmentData = dataAttachment, ReplyTo = replyTo, From = _appSettings.EmailSettingsFrom, FromName = _appSettings.EmailSettingsFromName, Host = _appSettings.EmailSettingsHost, Username = _appSettings.EmailSettingsUsername, Pass = _appSettings.EmailSettingsPassword, Port = _appSettings.EmailSettingsPort, EnableSsl = _appSettings.EmailSettingsEnableSsl }; if (!string.IsNullOrEmpty(mail.From) && !string.IsNullOrEmpty(mail.Host) && !string.IsNullOrEmpty(mail.Username) && !string.IsNullOrEmpty(mail.Pass)) { SendEmailWithAttachment(mail); return(true); } _logger.LogWarning("Mail not configured."); return(false); }