4

这里的基本问题:我正在使用 .NET 框架(3.5)的默认 SmtpClient 发送电子邮件。正文类型是 HTML (IsBodyHtml = true) 在正文中,我在查询字符串中添加了一个带有两个参数的 url,如下所示:

http://server.com/page.aspx?var1=foo&var2=bar

这个 get 被编码为:

http://server.com/page.aspx?var1=foo%26var2=bar (the ampersand is encoded as percent-26)

当做一个简单的Request["var2"]我得到'null'。我应该怎么做才能正确编码邮件中的&符号?

4

2 回答 2

3

这对我来说很好:

var client = new SmtpClient();
client.Host = "smtp.somehost.com";
var message = new MailMessage();
message.From = new MailAddress("from@example.com");
message.To.Add(new MailAddress("to@example.com"));
message.IsBodyHtml = true;
message.Subject = "test";
string url = HttpUtility.HtmlEncode("http://server.com/page.aspx?var1=foo&var2=bar");
message.Body = "<html><body><a href=\"" + url + "\">Test</a></body></html>";
client.Send(message);
于 2010-02-17T10:34:38.377 回答
0

使用UrlEncode方法。这将为您完成输入字符串的所有编码。

于 2010-02-17T10:33:01.407 回答