我在www.example.com上找到了这个关于如何使用Razor Engine作为电子邮件模板的linkasp.net,它工作得很好。但我试着在电子邮件模板中有一个带有图像的标志。
就像这样:EmailTemplate.cshtml
(顺便说一下,这是一个强类型视图)
<html>
<body>
<img src="logo.jpg" />
</body>
</html>
而当我试图通过电子邮件提交时,似乎图像路径没有被读取,它只在内容中渲染了一个X。
我在考虑将图像路径作为模型的一部分传递,但这种方式似乎很奇怪。有没有办法做到这一点?
任何帮助将不胜感激。谢谢
2条答案
按热度按时间3vpjnl9f1#
要在任何地方查看图像,您可以使用以下选项:
绝对网址
您可以简单地使用图像的完整绝对路径,例如
"http://example.com/images/logo.png"
IMO这是最简单的选择,并建议为您的问题。
附件
正如Mason在评论中提到的,您可以将图像附加到邮件中,然后放置图像标签并使用附件的
ContentId
:数据URI
你可以使用数据URI(data:image/png; base64,....)。
Outlook.com(web)
和OutlookWebAccess(web)
和Office Outlook(Windows)
和Outlook(windows 8.1)
测试了它,不幸的是它只在OutlookWebAccess(web)
上工作。7eumitmz2#
GraphAPI自上次答案被接受后已更改。当你读到这篇文章的时候,它可能已经改变了。祝你成功
你说你正在使用Razor,并且可接受的解决方案包括一些find\replace,这就是Razor所做的。我们就从这里开始吧。
在
EmailTemplate.cshtml
中,您可以使用Razor语法调用徽标路径:在构建模板时在数据模型中设置:
现在你已经有了一条消息,你可以使用Graph API发布它。我的例子是使用
Microsoft.Graph (5.9.0)