4

ここでの基本的な質問: .NET フレームワーク (3.5) の既定の SmtpClient を使用してメールを送信しています。bodytype は HTML (IsBodyHtml = true) です。本文では、次のようにクエリ文字列に 2 つのパラメーターを持つ URL を追加しました。

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」になります。メールメッセージのアンパサンドを正しくエンコードするにはどうすればよいですか?

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 に答える