使用Mailkit发送包含嵌入式图像的HTML模板文件的C#电子邮件

3

我想使用MailKit发送一封邮件,链接到一个嵌入了图片的html模板。对于C#部分,我使用以下代码:

var email = new MimeMessage();
var bodyBuilder = new BodyBuilder();
var image= bodyBuilder
    .LinkedResources
    .Add(@"E:\Hicham\MIMNESTHelper\image.jpg");

image.ContentId = MimeUtils.GenerateMessageId();

using (StreamReader SourceReader = System.IO.File.OpenText("E:\\Hicham\\MIMNESTHelper\\EmailTemplate.html"))
{               
    bodyBuilder.HtmlBody =  SourceReader.ReadToEnd();
}
            
email.Body = bodyBuilder.ToMessageBody();

在我的HTML模板正文中,我尝试将cid添加到附加的图像中,如下所示:
<div style="background-color:#000000;padding:1em;width:50%">
    <center><img src='image.ContentId' /></center>
</div>

thanks

Hicham


应该解释一下如何在电子邮件中使用内联图像:https://blog.elmah.io/how-to-send-emails-from-csharp-net-the-definitive-tutorial/#inline-images - ThomasArdal
1个回答

2

我建议您的html文件有一个占位符,以便稍后替换。

<img src='cid:[img-src]' />

在您的代码中,用正确的值替换占位符:

bodyBuilder.HtmlBody = bodyBuilder.HtmlBody.Replace("[img-src]", image.ContentId);

email.Body = bodyBuilder.ToMessageBody();

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接