【发布时间】:2011-08-29 21:17:20
【问题描述】:
使用 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 可以有多个“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 消息的更好方法,我会全力以赴。
【问题讨论】:
标签: c# .net parsing query-string uri