Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
493 views
in Technique[技术] by (71.8m points)

vsto - How do i edit the mapi property content disposition for inline image using c#?

I'm trying to add an inline image to the HTML body. How do I edit the content disposition ID. Currently it takes it as normal attachment instead of emebdded attachment?

        string file = GetImageBytes();
        Redemption.Attachment att = mail.Attachments.Add(file, 1, null, "logo");
        att.Fields[0x3712001E] = "image.logo";
        mail.Commit();
        RDOMail msg = Globals.ThisAddIn.session.GetMessageFromID(mailItem.Item.EntryId);

        mail.Item.HTMLBody = CreateHTMLBody(msg, sender, nvd_sii, recipient);

I want add the above attachment as inline attachment. Is there any way I could do it using redemptions?

question from:https://stackoverflow.com/questions/66050342/how-do-i-edit-the-mapi-property-content-disposition-for-inline-image-using-c

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Instead of setting the content disposition property, I set PR_ATTACH_FLAGS "http://schemas.microsoft.com/mapi/proptag/0x37140003" to 4(for embedded image). This solved the issue. The code below worked

        string file = GetImageFile();
        Redemption.Attachment att = mail.Attachments.Add(file);
        att.Fields[0x3712001E] = "image.logo";
        att.Fields[0x37140003] = 4;
        mail.Commit();
        System.IO.File.Delete(file);
        RDOMail msg = Globals.ThisAddIn.session.GetMessageFromID(mailItem.Item.EntryId);


        mail.Item.HTMLBody = CreateHTMLBody(msg, sender, nvd_sii, recipient);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...