private void ValidateAddresses() { var emailAddressValidator = GetEmailAddressValidatorFromConfiguration(); if (!emailAddressValidator.Validate(FromAddress)) { throw new InvalidEmailAddressException("From: " + FromAddress); } if (ToAddresses.Count > 0) { foreach (var address in ToAddresses.Where(address => !emailAddressValidator.Validate(address))) { throw new InvalidEmailAddressException("To: " + address); } } if (CcAddresses != null && CcAddresses.Count > 0) { foreach (var address in CcAddresses.Where(address => !emailAddressValidator.Validate(address))) { throw new InvalidEmailAddressException("Cc: " + address); } } if (BccAddresses != null && BccAddresses.Count > 0) { foreach (var address in BccAddresses.Where(address => !emailAddressValidator.Validate(address))) { throw new InvalidEmailAddressException("Bcc: " + address); } } }
public override int GetHashCode() { unchecked { int hashCode = ToAddresses.GetHashCode(); hashCode = (hashCode * 397) ^ FromAddresses.GetHashCode(); hashCode = (hashCode * 397) ^ Subject.GetHashCode(); hashCode = (hashCode * 397) ^ Content.GetHashCode(); return(hashCode); } }
public IRecipientOption AddTo(string emailAddress, string name = null) { if (ToAddresses == null) { ToAddresses = new List <EmailAddress>(); } var toAddress = new EmailAddress(emailAddress, name); ToAddresses.Add(toAddress); return(this); }
public bool SendMail(string Subject, string Body, bool HighPriority, string Attachment, string To, string From, string DisplayName, ref string errors) { if (String.IsNullOrWhiteSpace(To)) { Logger.LogError(String.Format("Cannot add an empty To address to email with subject: {0}", Subject)); return(false); } ToAddresses.Clear(); // need to clear any existing addresses that may have been added Logger.LogDebug(String.Format("Adding address: {0}", To)); ToAddresses.Add(To); return(SendMail(Subject, Body, HighPriority, Attachment, ToAddresses, From, DisplayName, AuthAccount, AuthPasswrd, ref errors)); }
public Email AddToAddress(string address) { if (ToAddresses == null) { ToAddresses = new List <string>(); } ToAddresses.Add(address); Mail.To.Add(address); return(this); }
public override string SerializePayload() { Dictionary <string, string> dict = new Dictionary <string, string>(); // email formats are EMAIL1:NAME1|EMAIL2:NAME2|EMAIL3:NAME3 dict.Add("ToAddresses", ToAddresses != null ? string.Join("|", ToAddresses.Select((kv) => EscapeString(kv.Key) + ":" + EscapeString(kv.Value))) : ""); dict.Add("CcAddresses", CcAddresses != null ? string.Join("|", CcAddresses.Select((kv) => EscapeString(kv.Key) + ":" + EscapeString(kv.Value))) : ""); dict.Add("BccAddresses", BccAddresses != null ? string.Join("|", BccAddresses.Select((kv) => EscapeString(kv.Key) + ":" + EscapeString(kv.Value))) : ""); dict.Add("Subject", Subject ?? ""); dict.Add("Body", Body ?? ""); dict.Add("FromAddress", FromAddress ?? ""); dict.Add("FromDisplayName", FromDisplayName ?? ""); dict.Add("FormatAsHtml", FormatAsHtml.ToString()); dict.Add("MailPriority", Priority.ToString("d")); // attachment format will be FILENAME|FILENAME|FILENAME[ATTACHMENTBOUNDARY]FILE2BYTESASSTRING[ATTACHMENTBOUNDARY]FILE2BYTESASSTRING[ATTACHMENTBOUNDARY]FILE3BYTESASSTRING if (Attachments != null && Attachments.Count > 0) { StringBuilder str = new StringBuilder(); foreach (string fn in Attachments.Keys) { byte[] fd = Attachments[fn]; if (str.Length > 0) { str.Append("|"); } str.Append(EscapeString(fn)); } foreach (string fn in Attachments.Keys) { byte[] fd = Attachments[fn]; str.Append(ATTACHMENTBOUNDARY); str.Append(Convert.ToBase64String(fd)); } dict.Add("Attachments", str.ToString()); } else { dict.Add("Attachments", ""); } dict.Add("SendCcToSystemEmail", SendCcToSystemEmail.ToString()); return(JsonConvert.SerializeObject(dict, Newtonsoft.Json.Formatting.None)); }
public bool SendMail(string Subject, string Body, bool HighPriority, string Attachment, string To, string CC, string From, string DisplayName, string Account, string Password, ref string errors) { if (String.IsNullOrWhiteSpace(To)) { Logger.Log(EnLogLevel.ERROR, String.Format("Cannot add an empty To address to email with subject: {0}", Subject)); return(false); } ToAddresses.Clear(); // need to clear any existing addresses that may have been added ToAddresses.Add(To); CCAddresses.Clear(); CCAddresses.Add(CC); return(SendMail(Subject, Body, HighPriority, Attachment, ToAddresses, From, DisplayName, Account, Password, ref errors)); }
public bool Equals(EmailMessage other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(ToAddresses.All(other.ToAddresses.Contains) && FromAddresses.All(other.FromAddresses.Contains) && Subject == other.Subject && Content == other.Content); }
private void GenerateAddressesCollection() { foreach (var address in _checkList.ToAddresses) { ToAddresses.Add(address); } foreach (var address in _checkList.CcAddresses) { CcAddresses.Add(address); } foreach (var address in _checkList.BccAddresses) { BccAddresses.Add(address); } }
public IEmailBuilder To(params string[] addresses) { if (ToAddresses == null) { ToAddresses = new List <string>(); } foreach (string address in addresses) { if (!ToAddresses.Contains(address)) { ToAddresses.Add(address); } } return(this); }
public void ToggleSendButton() { var isToAddressesCompleteChecked = ToAddresses.Count(x => x.IsChecked) == ToAddresses.Count; var isCcAddressesCompleteChecked = CcAddresses.Count(x => x.IsChecked) == CcAddresses.Count; var isBccAddressesCompleteChecked = BccAddresses.Count(x => x.IsChecked) == BccAddresses.Count; var isAlertsCompleteChecked = Alerts.Count(x => x.IsChecked) == Alerts.Count; var isAttachmentsCompleteChecked = Attachments.Count(x => x.IsChecked) == Attachments.Count; if (isToAddressesCompleteChecked && isCcAddressesCompleteChecked && isBccAddressesCompleteChecked && isAlertsCompleteChecked && isAttachmentsCompleteChecked) { IsCanSendMail = true; } else { IsCanSendMail = false; } }
public Mailer(ILogger logger) { SMTPServer = AppSettings.GetAppSetting("SMTPServer", ""); Port = AppSettings.GetAppSetting("SMTPServerPort", 25); UseSSL = AppSettings.GetAppSetting("UseSSL", false); AuthAccount = AppSettings.GetAppSetting("AuthAccount", ""); AuthPasswrd = AppSettings.GetAppSetting("AuthPasswrd", ""); string ToAddress = AppSettings.GetAppSetting("ToAddress", ""); if (Mailer.IsValidEmail(ToAddress)) { Logger.LogDebug(String.Format("Adding address: {0}", ToAddress)); ToAddresses.Add(ToAddress); } FromAddress = AppSettings.GetAppSetting("FromAddress", ""); FromFriendlyName = AppSettings.GetAppSetting("FromFriendlyName", ""); Logger = logger; this.BodyIsHtml = false; }