Пример #1
0
        /// <summary>
        /// Sends the email.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public static bool SendEmail(EmailMessage message, OutgoingMailSetting outgoingMailSetting)
        {
            var result = false;

            try
            {
                var htmlBody = string.Empty;
                if (message.MessageBody != null)
                {
                    result = Send(message, outgoingMailSetting);
                }
            }
            catch (Exception ex)
            {
                LogManager.Log(LogSeverity.Error, LogModule.Common, ex.Message, ex);
                return(result);
            }

            return(result);
        }
Пример #2
0
        /// <summary>
        /// Sends the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        private static bool Send(EmailMessage message, OutgoingMailSetting outgoingMailSetting)
        {
            var result = false;

            lock (emailThreadLock)
            {
                try
                {
                    var mail = new MailMessage();

                    if (!string.IsNullOrWhiteSpace(message.To))
                    {
                        mail.To.Add(ValidateEamilAddresses(message.To));
                    }

                    if (!string.IsNullOrWhiteSpace(message.CC))
                    {
                        mail.CC.Add(ValidateEamilAddresses(message.CC));
                    }

                    if (!string.IsNullOrWhiteSpace(message.BCC))
                    {
                        mail.Bcc.Add(ValidateEamilAddresses(message.BCC));
                    }

                    mail.From       = new MailAddress(outgoingMailSetting.MailAddress, outgoingMailSetting.DisplayName);
                    mail.Subject    = message.Subject;
                    mail.IsBodyHtml = true;
                    mail.Body       = message.MessageBody;

                    if (message.Attachments != null)
                    {
                        foreach (var attachment in message.Attachments)
                        {
                            MemoryStream ms = new MemoryStream(attachment.Content);
                            mail.Attachments.Add(new Attachment(ms, attachment.AttachmentName));
                        }
                    }

                    if (message.InlineConents != null)
                    {
                        foreach (var content in message.InlineConents)
                        {
                            var ms         = new MemoryStream(content.Content);
                            var attachment = new Attachment(ms, content.ContentId);

                            if (message.IsHtml)
                            {
                                attachment.ContentId = content.ContentId;
                                attachment.ContentDisposition.Inline          = true;
                                attachment.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
                            }

                            mail.Attachments.Add(attachment);
                        }
                    }

                    SmtpClient smtpClient = new SmtpClient(outgoingMailSetting.SmtpServer);
                    smtpClient.Port = outgoingMailSetting.SmtpPort;

                    // If password is not provided default email authentication
                    if (string.IsNullOrEmpty(outgoingMailSetting.Password))
                    {
                        smtpClient.UseDefaultCredentials = true;
                    }
                    else
                    {
                        smtpClient.UseDefaultCredentials = false;
                        smtpClient.EnableSsl             = true;
                        smtpClient.Credentials           = new NetworkCredential(outgoingMailSetting.MailAddress, outgoingMailSetting.Password);
                    }

                    smtpClient.Send(mail);
                    result = true;
                }
                catch (Exception ex)
                {
                    result = false;
                    LogManager.Log(LogSeverity.Error, LogModule.Common, string.Format("Failed to send the email. Error Message: {0}", ex.Message), ex);
                }

                return(result);
            }
        }