void EmailAdapter::ParseRecipients(const MojObject& recipients, Email& email) { MojErr err; EmailAddressListPtr to_list(new EmailAddressList); EmailAddressListPtr cc_list(new EmailAddressList); EmailAddressListPtr bcc_list(new EmailAddressList); MojObject::ConstArrayIterator it = recipients.arrayBegin(); for (; it != recipients.arrayEnd(); ++it) { const MojObject& recipient = *it; MojString type; err = recipient.getRequired(Part::TYPE, type); ErrorToException(err); EmailAddressPtr addr = ParseAddress(recipient); if(type.compareCaseless("to") == 0) to_list->push_back(addr); else if(type.compareCaseless("cc") == 0) cc_list->push_back(addr); else if(type.compareCaseless("bcc") == 0) bcc_list->push_back(addr); else // not a valid recipient type throw MailException("invalid recipient type", __FILE__, __LINE__); } email.SetTo(to_list); email.SetCc(cc_list); email.SetBcc(bcc_list); }