#c# #html #asp.net-mvc
#c# #HTML #asp.net-mvc
Вопрос:
Итак, я начал работать над приложением, которое мы написали в asp.net MVC и C #. У нас есть файл EmailSupport.cs, который содержит множество методов для возврата нового StringBuilder с помощью AppendLine, AppendFormat и Append. Буквально каждая строка добавляется таким образом. Вся цель этих методов — получить данные о котировках и добавить полученные данные в html (прилагаемый) для отправки в виде электронного письма. Я действительно новичок в C # и asp.net привык работать с Javascript/React/Node.js все это, поэтому я совершенно не понимаю, как просматривать этот HTML, когда я вношу изменения, чтобы увидеть, соответствует ли он новым файлам дизайна, которые они хотят, чтобы я реализовал. (они не используют Razor с ними). Насколько я могу судить, они используют WCF для отправки электронных писем после их сериализации, я могу отправить себе тестовое электронное письмо через тестовый клиент WCF, но не могу отправить его с данными html, единственное, что я могу поместить в тело, это базовый текст типа «привет, тестовый тест», поэтому в основном мне нужен способ увидеть, что я делаю, когда я вношу изменения, и отправить себе тестовое электронное письмо с HTML из правильного метода, чтобы я мог убедиться, что оно работает… Есть идеи?
Итак, мы делаем что-то вроде этого:
public virtual string SendAutoQuotingInstantEmail(AutoQuote<AutoQuotePerson> quote, string emailTo, string baseUrl, string CSCNumber, string stateCode)
{
CSSfile = baseUrl "link to css here";
emailSubject = "email subject here";
headerImage = baseUrl "link to headerimage";
longCompanyName = "Full company name";
shortCompanyName = "shorthand co name";
agentLocatorLink = "link to agent locator";
privacyStatementUrl = "link to privacy statement";
mailingAddress = "address";
var html = new StringBuilder();
html.AppendLine("<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">");
html.AppendLine("<html><head>");
html.AppendFormat("<title>Your Auto Insurance Quote From {0}</title>", longCompanyName).AppendLine();
<..... more appends for days.....>
var result = _quoteService.SendEmail(emailSubject, _emailFrom, _emailFrom, emailTo, html.ToString());
EmailText = html.ToString();
return resu<
}
WCF использует базовую привязку HttpBinding
Комментарии:
1. Вероятно, это не то, что вы можете исправить. Это зависит от библиотеки, которую удаленная служба использует для создания и отправки электронного письма. Например, System.Net.Mail.MailMessage имеет
IsBodyHtml
свойство. Если служба WCF не предоставляет вам возможность указать, является ли это HTML, то, вероятно, она просто всегда предполагает, что тело является обычным текстом. Изменение должно быть в этой службе, чтобы вы могли указать, что содержимое является HTML, чтобы оно устанавливало это свойство.2. @ScottHannen единственное, что я действительно вижу для почтового сервиса, который мы используем, который появляется у меня, — это UTILITYSoapClient?
3. Это где-то в этом сервисе котировок. Так что этого даже нет в вашем коде. Это в коде службы WCF на другом конце. Не похоже, что этот сервис дает вам возможность указать текст HTML, что означает, что вы не сможете, если не измените этот сервис или не найдете другой способ отправки электронных писем. Я бы задался вопросом, почему служба котировок имеет какое-либо отношение к отправке электронных писем (вместо службы только для этого), но я видел / делал почти то же самое, поэтому я знаю, как это.