Использование C #, .net 4.0
Я использую HttpUtility.ParseQueryString для анализа почтового URI, например:
MailMessage message = new MailMessage();
NameValueCollection mailTo = System.Web.HttpUtility.ParseQueryString(mailToUri.OriginalString.Split('?')[1]);
message.Subject = mailTo["subject"];
URI может иметь несколько параметров «to»,например:
mailto://?to=address1@email.com&to=address2@email.com&to=address3@email.com&subject=test&body=this%20should%20be%20the%20body"
При просмотре кода я вижу, что ParseQueryString создает mailTo ["to"] NameValueCollection, которая содержит один ключ "to" с несколькими значениями, который выглядит как объект типаSystem.Collections.Specialized.NameObjectCollectionBase.NameObjectEntry
Я уверен, что упускаю что-то простое.Я не смог выяснить, как перебрать эту коллекцию и получить каждое отдельное значение.Я бы искал что-то вроде этого, что, очевидно, не работает:
foreach (String address in mailTo["to"])
{
message.To.Add(new MailAddress(address));
}
Кроме того, если вы знаете лучший способ перехода от mailto URI к SMTP-сообщению, я весь в глазах.