/ThinkEmailFomatter/Models/BusinessObjects/EmailContext.cs
C# | 70 lines | 55 code | 9 blank | 6 comment | 0 complexity | 1f142bddbdac6db256dc9f6c421fa98a MD5 | raw file
Possible License(s): BSD-3-Clause
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.ComponentModel.DataAnnotations;
- using System.Configuration;
- using System.Net.Mail;
- namespace ThinkEmailFormatter.Models
- {
- public class EmailContext
- {
- /// <summary>
- /// Defines the URL where images are publicly accessible
- /// </summary>
- public string AttachmentsRootUrl { get; set; }
- public string Host
- {
- get
- {
- return _smtpServer.Host;
- }
- set
- {
- _smtpServer.Host = value;
- }
- }
- public string EmailHtmlBody { get; set; }
- private SmtpClient _smtpServer;
- public EmailContext()
- {
- _smtpServer = new SmtpClient();
- }
- /// <summary>
- /// Semicolon separated string contains all recipient emails
- /// </summary>
- [Required(ErrorMessage="At leat one recipient is required")]
- [Display(Name = "To")]
- public string Recipients { get; set; }
- public string Subject { get; set; }
- public string TemplateName { get; set; }
- public string FromEmail { get; set; }
- public ThinkTransactionData ThinkData { get; set; }
- public void HtmlSend()
- {
- var mail = new MailMessage(FromEmail, Recipients)
- {
- Subject = Subject,
- Body = EmailHtmlBody,
- IsBodyHtml = true
- };
- _smtpServer.Send(mail);
- }
- public void AbsorbContent(EmailContext emailContext)
- {
- Recipients = emailContext.Recipients;
- Subject = emailContext.Subject;
- EmailHtmlBody = emailContext.EmailHtmlBody;
- TemplateName = emailContext.TemplateName;
- }
- }
- }