Използване на C#, .net 4.0
Използвам HttpUtility.ParseQueryString за синтактичен анализ на mailto URI, като такъв:
MailMessage message = new MailMessage();
NameValueCollection mailTo = System.Web.HttpUtility.ParseQueryString(mailToUri.OriginalString.Split('?')[1]);
message.Subject = mailTo["subject"];
URI може да има множество параметри "до", като например:
mailto://[email protected]&[email protected]&[email protected]&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 съобщение, аз съм на очи.