无法使用MailKit将图像嵌入电子邮件中

药用的

这个问题已经提出并在SO上的几个地方回答了,特别是在这里:Gmail的问题-使用MailKit嵌入图像并处理我的确切查询,但答案似乎不适用于我的情况。

我尝试构建一个简单的邮件程序,将图像嵌入HTML电子邮件中,但是在多个客户端中,所有图像仍最终以附件形式出现。

我怀疑是我处理图片附件(一个.gif和几个.png)的方式有问题:

// Add pictures to embedded resources and replace links to pictures in the message
foreach (string imgpath in ImgPaths)
{
    var image = builder.LinkedResources.Add(imgpath);
    image.ContentId = MimeUtils.GenerateMessageId();
    image.ContentDisposition = new ContentDisposition() { Disposition = ContentDisposition.Inline };
    HtmlFormat = HtmlFormat.Replace(Path.GetFileName(imgpath), string.Format("cid:{0}", image.ContentId));
}
builder.HtmlBody = HtmlFormat;
message.Body = builder.ToMessageBody();

我可以从电子邮件(例如,在Gmail中收到)中看到,确实显示图像被列为:

src="images/cid:TPSXHQUDSAU4.JJRKUIEGLTZ5@Loralei"

我尝试过的两个客户端(gmail和roundcube)都将所有图像作为附件附加。我已经遍历了您的教程,并在这里查看了所有内容:https : //stackoverflow.com/search? q = Mailkit+Embed不幸的是,我似乎找不到我的错误。希望@jstedfast可以看到我在哪里犯了错误?

更新

如@jstedfast所述,更正后的代码应该是(就我而言):

foreach (string imgpath in ImgPaths)
            {
                var test = Path.GetFileName(imgpath);
                var image = builder.LinkedResources.Add(imgpath);
                image.ContentId = MimeUtils.GenerateMessageId();
                image.ContentDisposition = new ContentDisposition() { Disposition = ContentDisposition.Inline };
                //HtmlFormat = HtmlFormat.Replace(Path.GetFileName(imgpath), string.Format("cid:{0}", image.ContentId));
                HtmlFormat = HtmlFormat.Replace($"images/{test}", string.Format("cid:{0}", image.ContentId)); //use images/filename
            }

这也是一个很好的指南,https://programming.vip/docs/5dac3983f0cd5.html

jstedfast

这看起来像问题:

<img src="images/cid:TPSXHQUDSAU4.JJRKUIEGLTZ5@Loralei" .../>

必须是:

<img src="cid:TPSXHQUDSAU4.JJRKUIEGLTZ5@Loralei" .../>

我的猜测是,为了解决此问题,您需要更改以下代码行:

HtmlFormat = HtmlFormat.Replace(Path.GetFileName(imgpath), string.Format("cid:{0}", image.ContentId));

对此:

HtmlFormat = HtmlFormat.Replace(imgpath, string.Format("cid:{0}", image.ContentId));

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将图像嵌入CakePHP3电子邮件中

来自分类Dev

如何使用javamail将base64图像嵌入到电子邮件中

来自分类Dev

如何使用VBA将图像嵌入到Outlook电子邮件中

来自分类Dev

无法在使用python smtplib / email发送的Outlook 2013中的电子邮件中显示嵌入式图像

来自分类Dev

无法在ExtentReport中查看使用JavaMail API发送到其他电子邮件ID的嵌入式图像?

来自分类Dev

使用MailKit / MimeKit从电子邮件中删除附件

来自分类Dev

将图像嵌入到System.Web.Mail.MailMessage中的电子邮件中

来自分类Dev

如何将工作表中的图像嵌入到Outlook电子邮件中

来自分类Dev

将图像比例限制为C#构造电子邮件中的嵌入式附件

来自分类Dev

Excel VBA将单个图像嵌入到电子邮件联系人列表中

来自分类Dev

如何将链接的图像嵌入到 python 电子邮件中

来自分类Dev

使用$ this-> templating-> render()将图像嵌入电子邮件正文

来自分类Dev

如何使用Exchangelib库python将图像嵌入电子邮件正文中

来自分类Dev

Thunderbird 不显示电子邮件中的嵌入图像

来自分类Dev

对Thunderbird中的嵌入式电子邮件图像使用Content-ID和cid

来自分类Dev

如何使用MailApp在电子邮件中包含嵌入式图像

来自分类Dev

如何使用python在电子邮件中添加多个嵌入图像

来自分类Dev

将RSS feed嵌入HTML电子邮件中?

来自分类Dev

将徽标嵌入电子邮件

来自分类Dev

以html格式从电子邮件中读取嵌入式嵌入式图像

来自分类Dev

Symfony-无法在电子邮件中添加图像

来自分类Dev

NET Core Mailkit无法发送多封电子邮件

来自分类Dev

在电子邮件中嵌入 html 表

来自分类Dev

使用MailKit c#时,是否可以将电子邮件另存为文件?

来自分类Dev

使用MailKit c#时,是否可以将电子邮件另存为文件?

来自分类Dev

使用JavaMail发送带有嵌入式图像的HTML电子邮件-图像加载缓慢?

来自分类Dev

使用JavaMail发送带有嵌入式图像的HTML电子邮件-图像加载缓慢?

来自分类Dev

使用Scala和Play WS将内嵌图像添加到Mailgun电子邮件中

来自分类Dev

使用Outlook 2010将Excel文件作为图像插入电子邮件中

Related 相关文章

  1. 1

    将图像嵌入CakePHP3电子邮件中

  2. 2

    如何使用javamail将base64图像嵌入到电子邮件中

  3. 3

    如何使用VBA将图像嵌入到Outlook电子邮件中

  4. 4

    无法在使用python smtplib / email发送的Outlook 2013中的电子邮件中显示嵌入式图像

  5. 5

    无法在ExtentReport中查看使用JavaMail API发送到其他电子邮件ID的嵌入式图像?

  6. 6

    使用MailKit / MimeKit从电子邮件中删除附件

  7. 7

    将图像嵌入到System.Web.Mail.MailMessage中的电子邮件中

  8. 8

    如何将工作表中的图像嵌入到Outlook电子邮件中

  9. 9

    将图像比例限制为C#构造电子邮件中的嵌入式附件

  10. 10

    Excel VBA将单个图像嵌入到电子邮件联系人列表中

  11. 11

    如何将链接的图像嵌入到 python 电子邮件中

  12. 12

    使用$ this-> templating-> render()将图像嵌入电子邮件正文

  13. 13

    如何使用Exchangelib库python将图像嵌入电子邮件正文中

  14. 14

    Thunderbird 不显示电子邮件中的嵌入图像

  15. 15

    对Thunderbird中的嵌入式电子邮件图像使用Content-ID和cid

  16. 16

    如何使用MailApp在电子邮件中包含嵌入式图像

  17. 17

    如何使用python在电子邮件中添加多个嵌入图像

  18. 18

    将RSS feed嵌入HTML电子邮件中?

  19. 19

    将徽标嵌入电子邮件

  20. 20

    以html格式从电子邮件中读取嵌入式嵌入式图像

  21. 21

    Symfony-无法在电子邮件中添加图像

  22. 22

    NET Core Mailkit无法发送多封电子邮件

  23. 23

    在电子邮件中嵌入 html 表

  24. 24

    使用MailKit c#时,是否可以将电子邮件另存为文件?

  25. 25

    使用MailKit c#时,是否可以将电子邮件另存为文件?

  26. 26

    使用JavaMail发送带有嵌入式图像的HTML电子邮件-图像加载缓慢?

  27. 27

    使用JavaMail发送带有嵌入式图像的HTML电子邮件-图像加载缓慢?

  28. 28

    使用Scala和Play WS将内嵌图像添加到Mailgun电子邮件中

  29. 29

    使用Outlook 2010将Excel文件作为图像插入电子邮件中

热门标签

归档