public MailAddressCreateCondition(MailAddress sender, Boolean useFrom, Boolean useSender, Boolean useTo, Boolean useCc)
 {
     this.Sender = sender;
     this.ExcludeSender = false;
     this.UseFrom = useFrom;
     this.UseSender = useSender;
     this.UseTo = useTo;
     this.UseReplyTo = false;
     this.UseCc = useCc;
     this.UseBcc = false;
 }
Пример #2
0
        private static void SetProperty(MailAddress mailAddress, String value)
        {
            MailAddress m = mailAddress;
            var trimValue = value.Trim();
            Int32 displayNameEndIndex = 0;
            Int32 valueIndex = -1;
            Int32 valueEndIndex = -1;
            Int32 atmarkIndex = -1;

            m.AsciiCharOnly = true;
            for (int i = 0; i < trimValue.Length; i++)
            {
                if ((Byte)trimValue[i] >= 128)
                {
                    m.AsciiCharOnly = false;
                }
                if (trimValue[i] == ' ')
                {
                    displayNameEndIndex = i;
                }
                if (trimValue[i] == '<')
                {
                    valueIndex = i + 1;
                }
                if (trimValue[i] == '@')
                {
                    atmarkIndex = i;
                }
                if (atmarkIndex > -1 &&
                    trimValue[i] == '>')
                {
                    valueEndIndex = i;
                    break;
                }
            }
            if (atmarkIndex == -1)
            {
                m.ValidFormat = false;
                m.RawValue = value;
                return;
            }
            m.ValidFormat = true;
            if (valueEndIndex == -1) { valueEndIndex = trimValue.Length - 1; }
            if (valueIndex > -1)
            {
                //"Bill Gates" <*****@*****.**>
                //Bill <*****@*****.**>
                //<*****@*****.**>
                m.DisplayName = trimValue.Substring(0, displayNameEndIndex).Trim();
                if (m.DisplayName.Length > 1 &&
                    m.DisplayName[0] == '"' &&
                    m.DisplayName[m.DisplayName.Length - 1] == '"')
                {
                    m.DisplayName = m.DisplayName.Substring(1, m.DisplayName.Length - 2);
                }
                m.Value = trimValue.Substring(valueIndex, valueEndIndex - valueIndex);
                m.UserName = trimValue.Substring(valueIndex, atmarkIndex - valueIndex);
                m.DomainName = trimValue.Substring(atmarkIndex + 1, valueEndIndex - atmarkIndex - 1);
            }
            else
            {
                //[email protected]
                valueIndex = 0;
                m.Value = value;
                m.UserName = trimValue.Substring(valueIndex, atmarkIndex - valueIndex);
                m.DomainName = trimValue.Substring(atmarkIndex + 1, valueEndIndex - atmarkIndex);
            }
            m.RawValue = value;
        }
Пример #3
0
 public static SmtpMessage Create(System.Net.Mail.MailMessage message, MailAddress sender, SmtpMessageCreateMode mode)
 {
     return Create(message, new SmtpMessageCreateCondition(sender, mode, message.IsBodyHtml));
 }
 public MailAddressCreateCondition(MailAddress sender)
     : this(sender, false, false, false, false)
 {
 }
Пример #5
0
 public static SmtpMessage Create(MailMessage message, MailAddress sender, SmtpMessageCreateMode mode, Boolean isBodyHtml)
 {
     return Create(message, new SmtpMessageCreateCondition(sender, mode, isBodyHtml));
 }