Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }