I'm running Postal from a service. My @Message has html. @Html.Raw is not available. When Postal runs my templated view, I get HtmlEncoded html. does anyone know how to fix this?
Asked
Active
Viewed 1,418 times
2 Answers
5
In our service, we've used:
@Raw(StringToBeEncoded)
In the html template it will complain it can not be resolved, but at runtime @Raw works fine. Its part of RazorEngine.

MattWazEre
- 193
- 1
- 9
1
You can use:
@(new System.Web.HtmlString(StringToBeEncoded))
which is basically the same as does HtmlHelper.Raw(StringToBeEncoded)
method under the hood. Moreover, you will not get any error in Visual Studio for the templates.

Jozef Benikovský
- 1,121
- 10
- 9
-
1Due to the fact Postal uses [RazorEngine](https://www.nuget.org/packages/razorengine) library internally, you can also use `@(new RazorEngine.Text.RawString(StringToBeEncoded))`, as long as you are not going to use the template outside Postal (e.g. to render directly as view in controller methods). – Jozef Benikovský Oct 24 '18 at 10:51
-
When sending an email with `Postal.EmailService.Send(email)`, using `HtmlString` will send an encoded version of the HTML, meaning open and closed brackets will be shown. When viewing a preview of the email with `new EmailViewResult(email)`, using `HtmlString` will result in an unencoded string. When sending an email with `Postal.EmailService.Send(email)`, using `RawString` will send an unencoded version of the HTML. When viewing a preview of the email with `new EmailViewResult(email)`, using `RawString` will result in an encoded string, meaning open and closed brackets will be shown. – Onosa Feb 24 '22 at 18:30