我有代码在注册时向用户发送电子邮件:
await UserManager.SendEmailAsync(2, "Confirm your account", "Large amount of text here");
我想要包含的文本是几百行HTML,这对我来说太难以直接插入到我的C#代码中。我有一个建议是创建一个.txt文件,将其嵌入我的程序集中,并使用Assembly.GetManifestResourceStream进行读取。
有人可以就我如何做到这一点给我一些建议吗?
答案 0 :(得分:1)
我想要包含的文本是几百行HTML 对我来说太直接插入我的C#代码了。我曾有一个 建议创建.txt文件,将其嵌入我的程序集中,然后阅读 与Assembly.GetManifestResourceStream。
好吧,您可以尝试按照概述的步骤操作。向项目中添加新的emailBody.html
文件,并将其Build Action
设置为Embedded Resource
。现在您可以阅读其内容:
var assembly = typeof(SomeClassFromTheAssemblyThatContainsTheHTML).Assembly;
using (var stream = assembly.GetManifestResourceStream("YourProjectName.emailBody.html"))
using (var reader = new StreamReader(stream))
{
string body = reader.ReadToEnd();
await UserManager.SendEmailAsync(2, "Confirm your account", body);
}
答案 1 :(得分:0)
还有一个选择是将其保留为.txt文件,并使用File.ReadAllText()
将其作为字符串输入。电子邮件通常都很小,所以没关系。
这为您提供了(无论是嵌入式资源还是硬编码字符串)能够修改电子邮件内容而无需重新编译应用程序的优势。它的缺点是你需要管理它的权限。
这是MSDN link。
这是在ASP.Net中执行此操作的related post。