基本问题:我正在使用.NET框架的默认SmtpClient(3.5)发送电子邮件。 bodytype是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'。
如何正确编码邮件中的&符号?
答案 0 :(得分: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);
答案 1 :(得分:0)
使用UrlEncode方法。这将为您完成输入字符串的所有编码。