So far, I have managed to embed images into my e-mail template rendered with RazorEngine
. But, I am not quite satisfied with how it looks right now.
As it can be seen, they appear as attachments and quite in ugly way. What are the options to beautify the resulting output? Thanks in advance.
Here is the code responsible for this:
private async Task<MailMessage> PrepareEmailData(AppUser user)
{
var (body, models) = await PrepareHtmlContentWithModels(user);
var emailMessage = new MailMessage
{
From = new MailAddress("someemail@gmail.com", "Bla-bla-bla"),
Subject = "Weekly summary",
IsBodyHtml = true,
Body = body,
Priority = MailPriority.Normal,
};
emailMessage.To.Add(new MailAddress(user.Email));
var alternateView = AlternateView.CreateAlternateViewFromString(body, null, "text/html");
var imageLinks = new List<LinkedResource>();
models.BoardThreadWithRepliesModels.ForEach(e =>
imageLinks.Add(new LinkedResource(e.ThreadMainPicturePath, "image/png")
{
ContentId = e.ThreadMainPictureContentId,
TransferEncoding = TransferEncoding.Base64
}));
models.BoardThreadWithRepliesModels
.ForEach(e =>
e.Replies
.Where(r => !string.IsNullOrWhiteSpace(r.PicRelatedPath))
.ToList()
.ForEach(r =>
{
imageLinks.Add(new LinkedResource(r.PicRelatedPath, "image/png")
{
ContentId = r.PicRelatedContentId,
TransferEncoding = TransferEncoding.Base64
});
}));
imageLinks.ForEach(e => alternateView.LinkedResources.Add(e));
emailMessage.AlternateViews.Add(alternateView);
return emailMessage;
}