gpt4 book ai didi

c# - 如何在 Windows 应用程序的电子邮件正文中附加多图像?

转载 作者:行者123 更新时间:2023-11-30 13:43:51 25 4
gpt4 key购买 nike

我正在开发用于发送电子邮件的 Windows 应用程序。对于文本格式,我将 tinymce 编辑器用于电子邮件正文。

使用 tinymce 插入图像功能在电子邮件正文中添加图像,但在将电子邮件发送给用户时。图片不会出现在用户电子邮件正文中。

然后我尝试如下手动添加base64图像:

<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOYAAABLCAYAAABk6PuLAAAACXBIWXMAASdHAAEnRwEEDs /'>

加载图片失败

我们可以在 tiny mce 中使用链接资源和备用 View 吗?

如何在邮件正文中加载图片?

最佳答案

Tiny MCE 只是一个 HTML 编辑器,而不是一个可用于创建电子邮件替代 View 的工具。

此外,所有电子邮件客户端都不支持内联图像(带有数据 URL)。

备用 View 是确保所有电子邮件客户端能够以预期方式显示您的内容的唯一方法。

创建链接资源的字典:

Dictionary<string, byte[]> linkedResources = new Dictionary<string, byte[]>();
linkedResources.Add("img1", byte[]);

创建发送电子邮件的通用方法:

public bool SendEmail(Dictionary<string, byte[]> linkedResources)
{
using (SmtpClient mailSender = new SmtpClient("SmtpHost", 22))
{
MailMessage emailMessage = new MailMessage()
{
Subject = "Subject",
SubjectEncoding = Encoding.ASCII,
IsBodyHtml = true,
Body = "Message",
BodyEncoding = Encoding.ASCII,
From = new MailAddress("Sender@domain.com")
};

emailMessage.BodyEncoding = Encoding.ASCII;
emailMessage.IsBodyHtml = true;
AlternateView av = AlternateView.CreateAlternateViewFromString(emailMessage.Body, null, MediaTypeNames.Text.Html);

foreach (var item in linkedResources)
{
MemoryStream streamBitmap = new MemoryStream(item.Value);
var linkedResource = new LinkedResource(streamBitmap, MediaTypeNames.Image.Jpeg);
linkedResource.ContentId = item.Key;
av.LinkedResources.Add(linkedResource);
}
emailMessage.AlternateViews.Add(av);
mailSender.Send(emailMessage);

return true;
}
}

关于c# - 如何在 Windows 应用程序的电子邮件正文中附加多图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49318788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com