/// <summary> /// Default constructor. /// </summary> /// <param name="filedName">Header field name. For example: "To".</param> /// <param name="values">Addresses collection.</param> /// <exception cref="ArgumentNullException">Is raised when <b>filedName</b> or <b>values</b> is null reference.</exception> /// <exception cref="ArgumentException">Is raised when any of the arguments has invalid value.</exception> public Mail_h_MailboxList(string filedName,Mail_t_MailboxList values) { if(filedName == null){ throw new ArgumentNullException("filedName"); } if(filedName == string.Empty){ throw new ArgumentException("Argument 'filedName' value must be specified."); } if(values == null){ throw new ArgumentNullException("values"); } m_Name = filedName; m_pAddresses = values; }
/// <summary> /// Parses <b>mailbox</b> from specified string value. /// </summary> /// <param name="value">The <b>mailbox</b> string value.</param> /// <returns>Returns parse mailbox.</returns> /// <exception cref="ArgumentNullException">Is raised when <b>value</b> is null reference.</exception> /// <exception cref="ParseException">Is raised when <b>value</b> is not valid <b>mailbox</b> value.</exception> public static Mail_t_Mailbox Parse(string value) { if(value == null){ throw new ArgumentNullException("value"); } MIME_Reader r = new MIME_Reader(value); Mail_t_MailboxList retVal = new Mail_t_MailboxList(); while(true){ string word = r.QuotedReadToDelimiter(new char[]{',','<'}); // We processed all data. if(string.IsNullOrEmpty(word) && r.Available == 0){ throw new ParseException("Not valid 'mailbox' value '" + value + "'."); } // name-addr else if(r.Peek(true) == '<'){ return new Mail_t_Mailbox(word != null ? MIME_Encoding_EncodedWord.DecodeS(TextUtils.UnQuoteString(word.Trim())) : null,r.ReadParenthesized()); } // addr-spec else{ return new Mail_t_Mailbox(null,word); } } throw new ParseException("Not valid 'mailbox' value '" + value + "'."); }