如何在Windows应用程序的电子邮件正文中附加多个图像? [英] How to attach multi images in email body in windows application?

查看:61
本文介绍了如何在Windows应用程序的电子邮件正文中附加多个图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Windows应用程序发送电子邮件.对于文本格式,我对电子邮件正文使用了tinymce编辑器.

I am working on windows application for email sending. For text formatting i used tinymce editor for email body.

使用了tinymce插入图像功能,用于在电子邮件正文中添加图像,但当电子邮件发送给用户时.图片未显示在用户电子邮件正文中.

Used tinymce insert image functionality for adding image in email body but when email is sent to user. Images does not appear in user email body.

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

Then i tried to add base64 image manually as below:

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

无法加载图片.

我们可以在小型mce中使用链接资源和备用视图吗?

Can we use linked resources and alternate view in tiny mce?

如何在电子邮件正文中加载图像?

How to load images in email body?

推荐答案

微型MCE只是HTML编辑器,而不是可用于创建电子邮件备用视图的工具.

Tiny MCE is just an HTML editor and not a tool which can be used for creating alternate views for email.

此外,所有电子邮件客户端都不支持嵌入式图像(带有数据URL).

Moreover, all email clients don't support inline images (with data URL).

备用视图是确保所有电子邮件客户端将能够按预期方式显示您的内容的唯一方法.

Alternate view is the only way to ensure that all email clients will be able to show your content in the intended manner.

创建链接资源的字典:

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

创建一种常见的发送电子邮件的方法:

Create a common method to send email:

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;
 }
}

这篇关于如何在Windows应用程序的电子邮件正文中附加多个图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆