Пример #1
0
        public string PrepareSubject(Email email)
        {
            string EmailTemplate = email.Template;

            BaseMailTemplate bst = (BaseMailTemplate)this._mailTemplateSettings.Value.GetTemplateByName(EmailTemplate);

            return(bst.Subject);
        }
Пример #2
0
        } // End Function GetAlternativeView

        public void SendMail(BaseMailTemplate mt, System.Data.DataRow dr)
        {
            if (OnStart != null)
            {
                OnStart(this.m_mailSettings, mt, System.DateTime.Now, null);
            }

            try
            {
                using (System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage())
                {
                    mail.HeadersEncoding = System.Text.Encoding.UTF8;

                    mail.SubjectEncoding = System.Text.Encoding.UTF8;
                    mail.Subject         = mt.Subject;

                    mail.BodyEncoding         = System.Text.Encoding.UTF8;
                    mail.BodyTransferEncoding = System.Net.Mime.TransferEncoding.Base64;
                    mail.IsBodyHtml           = true;
                    mail.Body = mt.TemplateString;

                    System.Text.StringBuilder sb = mt.TemplateStringBuilder;

                    if (dr != null)
                    {
                        foreach (System.Data.DataColumn dc in dr.Table.Columns)
                        {
                            string value = System.Convert.ToString(dr[dc.ColumnName], System.Globalization.CultureInfo.InvariantCulture);
                            value = System.Web.HttpUtility.HtmlEncode(value);
                            sb.Replace("{@" + dc.ColumnName + "}", value);
                        } // Next dc
                    }     // if (dr != null)



                    mail.Body = sb.ToString();
                    sb.Clear();
                    sb = null;


                    if (mt.EmbeddedImages.Count > 0)
                    {
                        mail.AlternateViews.Add(GetAlternativeView(mail.Body, mt.EmbeddedImages));
                    }

                    foreach (Resource thisAttachment in mt.AttachmentFiles)
                    {
                        mail.Attachments.Add(
                            new System.Net.Mail.Attachment(
                                thisAttachment.Stream
                                , thisAttachment.FileName
                                , thisAttachment.ContentType
                                )
                            );
                    } // Next i

                    mail.From = new System.Net.Mail.MailAddress(mt.From, mt.FromName);
                    mail.To.Add(new System.Net.Mail.MailAddress(mt.To, mt.ToName));
                    mail.Priority = (System.Net.Mail.MailPriority)mt.Priority;

                    if (!string.IsNullOrEmpty(mt.ReplyTo))
                    {
                        mail.ReplyToList.Add(new System.Net.Mail.MailAddress(mt.ReplyTo, mt.ReplyToName));
                    }

                    if (!string.IsNullOrEmpty(mt.CC))
                    {
                        mail.CC.Add(new System.Net.Mail.MailAddress(mt.CC, mt.CCName));
                    }

                    if (!string.IsNullOrEmpty(mt.Bcc))
                    {
                        mail.Bcc.Add(new System.Net.Mail.MailAddress(mt.Bcc, mt.BccName));
                    }

                    if (!string.IsNullOrEmpty(mt.ReplyTo))
                    {
                        mail.ReplyToList.Add(new System.Net.Mail.MailAddress(mt.ReplyTo, mt.ReplyToName));
                    }

                    Send(mail);

                    if (OnSuccess != null)
                    {
                        OnSuccess(this.m_mailSettings, mt, System.DateTime.Now, null);
                    }
                } // End Using mail
            }     // End Try
            catch (System.Exception ex)
            {
                if (OnError != null)
                {
                    OnError(this.m_mailSettings, mt, System.DateTime.Now, ex);
                }

                do
                {
                    System.Console.Write("Fehler: ");
                    System.Console.WriteLine(ex.Message);
                    System.Console.WriteLine("Stacktrace: ");
                    System.Console.WriteLine(ex.StackTrace);
                    System.Console.WriteLine(System.Environment.NewLine);
                    ex = ex.InnerException;
                } while (ex != null);
            } // End Catch

            if (OnDone != null)
            {
                OnDone(this.m_mailSettings, mt, System.DateTime.Now, null);
            }
        } // End Sub SendMail
Пример #3
0
        } // End Sub SendMail

        void IMailService.SendMail(BaseMailTemplate template, System.Data.DataRow dr)
        {
            this.SendMail(template, dr);
        } // End Sub IMailService.SendMail