Invia URL con querystring con SmtpClient
-
21-09-2019 - |
Domanda
domanda di base qui: Sto l'invio di email utilizzando il default SmtpClient del framework .NET (3.5). Il BodyType è HTML (IsBodyHtml = true) Nel corpo ho aggiunto un URL con due parametri nella querystring in questo modo:
http://server.com/page.aspx?var1=foo&var2=bar
di codifica per questo ottenere:
http://server.com/page.aspx?var1=foo%26var2=bar (the ampersand is encoded as percent-26)
Quando si effettua una semplice Request["var2"]
ottengo 'null'.
Cosa devo fare per codificare correttamente la e commerciale nel messaggio di posta elettronica?
Soluzione
Questo funziona bene per me:
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);
Altri suggerimenti
Utilizza il href="http://msdn.microsoft.com/en-us/library/zttxte6w.aspx" rel="nofollow noreferrer"> UrlEncode metodo
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow