2010-02-17 6 views
4

Основной вопрос здесь: Я отправляю электронные письма с использованием стандартного SmtpClient платформы .NET (3.5). Показ является HTML (IsBodyHtml = истина) В теле я добавил URL с двумя параметрами в строке запроса следующим образом:Отправить url с querystring с SmtpClient

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

Получить-х закодировано:

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

При выполнении простого Request["var2"] Я получаю 'null'. Что мне делать, чтобы правильно закодировать амперсанд в почтовом сообщении?

ответ

3

Это прекрасно работает для меня:

var client = new SmtpClient(); 
client.Host = "smtp.somehost.com"; 
var message = new MailMessage(); 
message.From = new MailAddress("[email protected]"); 
message.To.Add(new MailAddress("[email protected]")); 
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); 
+0

Хорошо. Похоже, что Outlook Web Access искажает URL-адрес, а не SmtpClient или что-то еще :(Проблема решена – edosoft

0

Используйте метод UrlEncode. Это сделает для вас всю кодировку вашей строки ввода.

 Смежные вопросы

  • Нет связанных вопросов^_^