andyedinborough / aenetmail

C# POP/IMAP Mail Client
369 stars 153 forks source link

Issues with GetAddresses method in HeaderCollection.cs #100

Open AkshayMMittal opened 11 years ago

AkshayMMittal commented 11 years ago

GetAddresses seems to have issues. 1) If you have multiple users in MailTo list, It returns only one user. 2) Mail From is always null.

public virtual MailAddress[] GetAddresses(string header) { string values = this[header].RawValue.Trim(); List addrs = new List(); while (true) { int semicolon = values.IndexOf(';'); int comma = values.IndexOf(','); if (comma < semicolon || semicolon == -1) semicolon = comma;

          int bracket = values.IndexOf('>');
          string temp = null;
          if (semicolon == -1 && bracket == -1)
          {
              if (values.Length > 0) addrs.Add(values.ToEmailAddress());
              return addrs.Where(x => x != null).ToArray();
          }
          else
          {
              if (bracket > -1 && (semicolon == -1 || bracket < semicolon))
              {
                  temp = values.Substring(0, bracket + 1);
                  values = values.Substring(temp.Length);
              }
              else if (semicolon > -1 && (bracket == -1 || semicolon < bracket))
              {
                  temp = values.Substring(0, semicolon);
                  values = values.Substring(semicolon + 1);
              }
              if (temp.Length > 0)
                  addrs.Add(temp.Trim().ToEmailAddress());
              values = values.Trim();
          }
      }
  }
AkshayMMittal commented 11 years ago

My To address is of format - "LastName, FirstName" abc@test.com, "xyz-dev@test.com"xyz-dev@test.com}