[英]C#: add a resource as an attachment to an Outlook mail item
我正在嘗試將文件附加到將在Outlook中以C#發送的電子郵件中。
我有以下很棒的方法:
using OutlookApp = Microsoft.Office.Interop.Outlook.Application;
[...]
public class Foo
{
private void SendMail()
{
OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);
[...]
var rootDirectory = System.Windows.Forms.Application.StartupPath;
Attachment myAttachment = mailItem.Attachments.Add(Path.Combine(rootDirectory, @"../../Assets/image.png"));
[...]
mailItem.Display(false);
}
}
它可以工作,但是有點麻煩,因為現在我的文件在一個靜態文件夾中,而在構建項目時該文件夾將不存在。
因此,我已將圖像放入項目的資源中:現在可以通過Properties.Resources.image
使用該圖像。
天真的,我做了以下事情:
using OutlookApp = Microsoft.Office.Interop.Outlook.Application;
[...]
public class Foo
{
private void SendMail()
{
OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);
[...]
var rootDirectory = System.Windows.Forms.Application.StartupPath;
Attachment myAttachment = mailItem.Attachments.Add(Properties.Resources.image);
[...]
mailItem.Display(false);
}
}
但這不起作用:
System.Runtime.InteropServices.COMException:'找不到成員。 (來自HRESULT的異常:0x80020003(DISP_E_MEMBERNOTFOUND))'
從MSDN中 ,我讀取了Attachments.Add
方法的第一個參數:
類型:System.Object
附件的來源。 這可以是文件(由具有文件名的完整文件系統路徑表示)或構成附件的Outlook項目。
據我了解,問題是我只能提供文件名才能將附件添加到Outlook郵件中。 另一個選擇是創建一個Outlook附件,但據我了解是不可能的。 這樣做的唯一方法是...在mailItem
的附件中添加文件。
所以我的問題如下:
Resources.resx
文件之外的其他文件? 含義:在我構建項目時,文件路徑將在我的應用程序中可用,並且文件將“導出”; MailItem
的附件? 謝謝。
我的猜測是該資源無法作為附加項使用。 有沒有辦法將資源作為圖像保存到某處的計算機,然后附加您創建的文件?
這樣的事情可能會起作用。
var bmp = new Bitmap(Properties.Resources.myimage);
Attachment myAttachment = mailItem.Attachments.Add(bmp);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.