【发布时间】:2018-08-16 09:47:19
【问题描述】:
我的任务是设置一种方式,让管理员用户可以轻松地挑选文章发送给订阅者列表。下图是我正在尝试创建的,但我的问题是如何通过电子邮件发送视图。我将它创建为静态模板和剃刀模板。我尝试使用RazorEngine 和Razorlight,但无法弄清楚。
我在这方面看到的很多问题只会在电子邮件中添加一个项目。例如here 和here。我正在使用MailKit 发送电子邮件,但对于我的一生,我无法弄清楚如何获得像上面这样的电子邮件正文。我的代码是这样的
var mimeMessage = new MimeMessage();
mimeMessage.From.Add(new MailboxAddress("email", "intranet@domain.com"));
foreach (var item in contacts)
{
mimeMessage.To.Add(new MailboxAddress(ToAdressTitle, string.Join(",", item.Email.ToString())));
}
mimeMessage.Subject = Subject;
var builder = new BodyBuilder();
foreach (var item in post)
{
// Set the plain-text version of the message text
builder.TextBody = item.Intro;
var ContentId = MimeUtils.GenerateMessageId();
// Set the html version of the message text
builder.HtmlBody = string.Format(item.Intro,@"<img src=""cid:{0}"">", item.FeaturedImage);
// Now we just need to set the message body and we're done
mimeMessage.Body = builder.ToMessageBody();
}
我可以得到我想要的这样的布局吗?
【问题讨论】:
-
那么具体的问题是什么?我们无法帮助您“弄清楚” Razor,您需要教程或书籍。如果您发布一个问题,我们可以帮助您找出具体问题。没有 Razor 的方法似乎是一个简单的循环。同样,我们无法帮助您“弄清楚”。我们只能帮助您解决具体的问题。你到底在坚持什么?
-
我知道 Razor,我并没有要求弄清楚 Razor。我问我可以得到我想要的布局来发送通讯。我可以在 Razor 中创建布局,这很容易,但我无法通过电子邮件发送。电子邮件只能是纯文本或 html
-
我不确定我是否理解问题出在哪里。我以为您想要发送 HTML?您的列表看起来像是 HTML。
-
好的,我可以在剃刀视图中创建我想要的布局,但我不知道如何在 HTML 电子邮件中发送视图。
-
简单来说,您需要将 Razor 视图呈现为字符串,然后将其作为电子邮件的 HTML 正文发送。但是,将 Razor 视图呈现为字符串并非易事,并且超出了 Stack Overflow 的范围。您需要对此进行自己的研究。粗略的搜索返回了许多在线示例。就个人而言,我更喜欢轻量级的电子邮件,只在基本的
*.html文件(实际上是通过 MJML 生成)上使用 Handlebars.Net。
标签: c# asp.net-core html-email razorengine