我正在使用StringBuilder构建一个电子邮件正文。我需要在电子邮件的末尾插入一个图像作为签名。
我的图片位于我的MVC解决方案中的一个文件夹中。我可以浏览图像的来源,并且可以正常工作。
如果我浏览到: http://localhost/Content/images/CustomerSatisfaction.jpg,我得到了返回的图片,刚才将此图片作为电子邮件正文的一部分
string imgSrc = string.Format("@{0}{1}", HttpContext.Current.Request.Url.Authority,
"/Content/images/CustomerSatisfaction.jpg");
StringBuilder sb = new StringBuilder();
sb.AppendLine("<html>");
sb.AppendLine("<body>");
sb.AppendLine(string.Format("<img src='{0}' alt='xxx'>", imgSrc));
sb.AppendLine("</body>");
sb.AppendLine("</html>");
我还为我的图像源尝试了几个版本:
string imgSrc = "~/Content/images/CustomerSatisfaction.jpg";
答案 0 :(得分:2)
图片需要在电子邮件外部托管或嵌入。
我建议外部托管,因为它是最容易做的,并允许轻量级电子邮件(可能增加可传递性)。某些电子邮件客户端中不显示嵌入的图像,因此也可能导致问题。
有关外部链接与嵌入图像的一些深入信息,请参阅此文章。 https://sendgrid.com/blog/embedding-images-emails-facts/
以下是文章的快速概要:
CID嵌入式图像(内嵌图像)
赞成
缺点
内联嵌入(Base64编码)
赞成
缺点
已关联的图片
赞成
缺点