C#学习教程:如何在资源文件夹中添加和嵌入图像作为C#中Outlook邮件文本的附件在文本中,我有几张图像存储在visualstudio项目Resources文件夹中,我必须加载它们并在outlook邮件文本中显示。这是代码:Bitmapb=newBitmap(Properties.Resources.MyImage);ImageConverteric=newImageConverter();Byte[]ba=(Byte[])ic.ConvertTo(b,typeof(Byte[]));MemoryStreamlogo=newMemoryStream(ba);LinkedResourcecompanyImage=newLinkedResource(logo);companyImage.ContentId="companyLogo";mailitem.HTMLBody+="";但是,它不能显示在邮件文本中,而是显示为空框。你能给我一些想法吗?使用Attachment.PropertyAccessor创建附件并设置PR_ATTACH_CONTENT_ID属性(DASL名称“http://schemas.microsoft.com/mapi/proptag/0x3712001F")。然后您的HTML文本(MailItem.HTMLBody属性)需要通过cid引用该图像附件:imgsrc="cid:xyz"其中xyz是PR_ATTACH_CONTENT_ID属性的值。使用OutlookSpy查看现有的消息(单击IMessage按钮)。attachment=mailitem.Attachments.Add("c:tempMyPicture.jpg")attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F","MyId1")mailitem.HTMLBody="测试图片"也许你可以试试这个。stringhtmlBody="图片";AlternateViewavHtml=AlternateView.CreateAlternateViewFromString(htmlBody,null,MediaTypeNames.Text.Html);varfileName=Guid.NewGuid.ToString();varpath=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)),fileName);File.WriteAllBytes(路径,Properties.Resources.Pic);LinkedResourceinline=newLinkedResource(path,MediaTypeNames.Image.Jpeg);//Jpeg或其他内容inline.ContentId=Guid.NewGuid().ToString();avHtml.LinkedResources.Add(内联);MailMessagemail=newMailMessage();mail.AlternateViews.Add(avHtml);附件att=new附件(文件路径);att.ContentDisposition.Inline=true;邮件。来自=from_email;邮件.To.Add(data.email);mail.Subject="这是你的主题;mail.Body=String.Format("这是之前的HTMLBody"+@"",inline.ContentId);mail.IsBodyHtml=true;mail.Attachments.Add(att);无需将图像更改为内存流为了方便,将您的电子邮件内容获取为HTML您可以在上面的代码中找到您也可以参考此链接superior以上就是C#学习教程:如何在C#中将资源文件夹中的图片作为附件添加到Outlook邮件的正文中。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关照——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
