Отправка электронной почты в формате HTML с помощью Mailgun API с помощью RestSharp C #, в результате чего сообщение обрезается до амперсанда «&», если оно включено - PullRequest
0 голосов
/ 06 января 2019

Ниже приведен код, который я сейчас запускаю в консольном приложении для тестирования. Письмо успешно отправлено.

Но тело обрезано, и вы видите только This is test HTML без & rest of message. Я могу обойти эту проблему, заменив & на и, но это не сработает, когда мне нужно вставить urls в электронные письма с параметрами строки запроса.

Я попробовал html-кодирование без удачи.

var client = new RestSharp.RestClient("https://api.mailgun.net/v3");
client.Authenticator = new RestSharp.HttpBasicAuthenticator("api", "{APIKEY}");

RestSharp.IRestRequest request = new RestSharp.RestRequest("/{DOMAIN}/messages", RestSharp.Method.POST);

string MailBody = "<html>This is test HTML & rest of message</html>";

request.AddParameter("from", "{EmailAddress}");
request.AddParameter("h:Reply-To", "{EmailAddress}");
request.AddParameter("to", "{EmailAddress}");
request.AddParameter("subject", "Mailgun Test New");

request.AddParameter("html", MailBody);

try
{
    RestSharp.IRestResponse response = client.Execute(request);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Проблема заключалась в использовании полной версии RestSharp, которую я использовал. Я обновил проект, чтобы использовать последнюю версию, и все заработало как положено.

0 голосов
/ 22 февраля 2019

Я заменил & на

&amp;

в тексте и все заработало.
В ссылках я просто сохранил & как есть, и это сработало.

string MailBody = "<html><body>This is test HTML &amp; rest of message. <a href=\"http://www.google.com?a=b&c=d\">Link with querystring</a></body></html>";
...