Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 4
0
 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));
 }
Ejemplo n.º 5
0
        public Email AddToAddress(string address)
        {
            if (ToAddresses == null)
            {
                ToAddresses = new List <string>();
            }

            ToAddresses.Add(address);

            Mail.To.Add(address);

            return(this);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 10
0
        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;
            }
        }
Ejemplo n.º 12
0
        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;
        }