如何解决Interop Outlook-如何将位图添加到邮件正文/附件中
我的应用程序中有一个按钮,用于获取当前窗口的屏幕快照,然后尝试将位图结果添加到Outlook邮件中。
我已经使用以下命令创建了应用程序的位图:
FrameworkElement element = (FrameworkElement)o;
double width = element.ActualWidth;
double height = element.ActualHeight;
RenderTargetBitmap bmpCopied = new RenderTargetBitmap((int)Math.Round(width),(int)Math.Round(height),96,PixelFormats.Default);
DrawingVisual dv = new DrawingVisual();
using (DrawingContext dc = dv.RenderOpen())
{
VisualBrush vb = new VisualBrush(element);
dc.DrawRectangle(vb,null,new Rect(new Point(),new Size(width,height)));
}
bmpCopied.Render(dv);
Clipboard.SetImage(bmpCopied);
要创建邮件,我使用dll Interop.Outlook来管理新邮件:
Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook._MailItem mailItem = (Microsoft.Office.Interop.Outlook._MailItem)outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
mailItem.Attachments.Add(Clipboard.GetImage());
mailItem.Display(true);
但是,Attachments.Add()无法与位图一起使用,并且命令崩溃而没有任何解释...
有没有一种方法可以在计算机上不创建将其附加到邮件的临时文件?
解决方法
在添加附件时,从documentation中获取参数Source
:
附件的来源。该文件可以是文件(由具有文件名的完整文件系统路径表示)或构成附件的Outlook项目。
如果不将图像另存为文件,这似乎是不可能的。
存在类似的问题(Embedding picture to outlook email body),该问题提供了一种从文件内联附加图像的方法,如果可以选择将图像保存到磁盘,则该方法将对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。