Razor представления в виде шаблонов электронной почты



Я создаю механизм электронной почты в mvc3, и я пытаюсь использовать представления razor в качестве шаблонов электронной почты.
Я слышал, что это возможно, но я еще не нашел никакой информации об этом.

610   5  

5 ответов:

вы можете использовать http://razorengine.codeplex.com/ чтобы достичь этого. Это позволяет использовать бритву за пределами mvc.

string Email = "Hello @Model.Name! Welcome to Razor!";
string EmailBody = Razor.Parse(Email, new { Name = "World" });

это просто реализовать и он доступен на http://nuget.codeplex.com/ для легкой интеграции в ваши проекты.

вы можете использовать файл шаблона, чтобы служить в качестве шаблона тела электронной почты бритвы. Вы можете использовать любое расширение, которое вы выберете, потому что вы можете загрузить файл в виде текста в .Net. давайте использовать следующий пример для шаблона:

Hello @Model.Name,

Welcome to @Model.SiteName!

Regards,
Site Admins

Сохраните этот файл как что-то вроде "WelcomeMessage.cshtml", " WelcomeMessage.шаблон " и др. Выберите файл в обозревателе решений и в окне свойств выберите "Копировать в выходной каталог" и выберите "Копировать всегда". Единственным недостатком является то, что это шаблон должен сопровождать приложение и не компилируется как класс.

теперь мы хотим разобрать его как строку, чтобы назначить тело почтового сообщения. Razor возьмет шаблон и класс модели, проанализирует их, а затем вернет строку с необходимыми значениями. В вашем приложении вам нужно будет добавить пакет RazorEngine, который можно найти с помощью NuGet. Вот краткий пример кода, чтобы проиллюстрировать использование:

using System.IO;
using RazorEngine;

// ...
MyModel model = new MyModel { Name = "User", SiteName = "Example.com" };
string template = File.OpenText("WelcomeMessage.template").ReadToEnd();
string message = Razor.Parse(template, model);

Это похоже на другие ответы, но показывает быстрый способ загрузки шаблона из текстового файла.

возможно, вы должны рассмотреть MvcMailer. RazorEngine (очень) хорош, если вы еще не используете MVC (я успешно использовал его в контексте webforms), но если у вас есть MVC, вы можете также воспользоваться им.

(через Hanselmen's NuGet package of the week 2)

вы также можете использовать Основная Почта: Бритва пакет от NuGet. Он построен на RazorEngine и обеспечивает простой интерфейс для рендеринга электронной почты.

шаблон сообщения электронной почты выглядит примерно так

@inherits Essential.Templating.Razor.Email.EmailTemplate
@using System.Net;
@{
    From = new MailAddress("[email protected]");
    Subject = "Email Subject";
}
@section Html 
{
   <html>
      <head>
          <title>Example</title>
      </head>
      <body>
          <h1>HTML part of the email</h1>
      </body>
   </html>
}
@section Text 
{
    Text part of the email.
}

подробнее на GitHub: https://github.com/smolyakoff/essential-templating/wiki/Email-Template-with-Razor

Mailzor

связанный с тем, что упоминал @thiagoleite, я взял идею Кази Манзура Рашида (с разрешения) и расширил ее, чтобы быть более дружелюбным к тому, как я хотел ее использовать.

из-за проект github 'mailzor'

Он также включен Nuget.org/packages/mailzor

Comments

    Ничего не найдено.