Я пытаюсь создать метод для компиляции вида Razor (я использую Asp Net 5) и преобразовать его в строку, которую я могу отправить в виде тела электронной почты. До сих пор, что у меня есть:Использование AspNet Razor для отправки писем, созданных из шаблонов
MailMessage mailmessage = new MailMessage("[email protected]",email);
var parser = new RazorParser(new CSharpCodeParser(),
new HtmlMarkupParser(),
null);
var result = parser.Parse(new StringReader("<p>Hello world. The time is @DateTime.UtcNow</p>"));
mailmessage.Body = ""; // What to put here?
mailmessage.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp.test.com");
smtp.Port = 587;
smtp.Credentials = // Removed
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
return smtp.SendMailAsync(mailmessage);
Я не могу понять, что мне нужно сделать, чтобы преобразовать ParserResult в то полезное для органа по электронной почте, я копал через исходный код сети САШ, но не повезло еще , Кто-нибудь знает как это сделать?
Я нашел проблему в этом коде. Повторите попытку, если у вас есть ошибки. – Rono
Есть ли способ сделать это из контроллера? Я пытаюсь сделать это в файле MessageServices, поэтому я могу просто передать ему имя представления и модель и скомпилировать и отправить электронное письмо с любого контроллера. Если нет, то я могу просто добавить это как метод расширения для контроллера и передать результат методу SendEmail по умолчанию. – CaffeinatedCM
Я бы просто добавил параметр к этой функции, которая принимает объект ControllerContext. Это похоже на самый простой способ. – Rono