1
我知道使用mailto鏈接可以打開您的defautl郵件客戶端並填充主題和標題。我需要做類似的事情,但也要附上一份文件。.NET在Office 2010中創建帶有附件的電子郵件
我的所有用戶都將使用Outlook 2010,並將其設置爲默認郵件客戶端。它只需要爲這種情況工作。
如何創建一個打開Outlook新消息窗口並填充附件字段的電子郵件?
我知道使用mailto鏈接可以打開您的defautl郵件客戶端並填充主題和標題。我需要做類似的事情,但也要附上一份文件。.NET在Office 2010中創建帶有附件的電子郵件
我的所有用戶都將使用Outlook 2010,並將其設置爲默認郵件客戶端。它只需要爲這種情況工作。
如何創建一個打開Outlook新消息窗口並填充附件字段的電子郵件?
你需要到Outlook COM庫的引用,那麼這樣的事情應該工作:
/// <summary>
/// Get Application Object
/// </summary>
public static OL.Application Application
{
get
{
try
{
return Marshal.GetActiveObject("Outlook.Application") as OL.Application;
}
catch (COMException)
{
return new OL.Application();
}
}
}
/// <summary>
/// Prepare An Email In Outlook
/// </summary>
/// <param name="ToAddress"></param>
/// <param name="Subject"></param>
/// <param name="Body"></param>
/// <param name="Attachment"></param>
public static void CreateEmail(string ToAddress, string Subject, string Body, string AttachmentFileName)
{
//Create an instance of Outlook (or use existing instance if it already exists
var olApp = Application;
// Create a mail item
var olMail = olApp.CreateItem(OL.OlItemType.olMailItem) as OL.MailItem;
olMail.Subject = Subject;
olMail.To = ToAddress;
// Set Body
olMail.Body = Body;
// Add Attachment
string name = System.IO.Path.GetFileName(AttachmentFileName);
olMail.Attachments.Add(AttachmentFileName, OL.OlAttachmentType.olByValue, 1, name);
// Display Mail Window
olMail.Display();
}
對於這個工作,你還需要:
using System.Runtime.InteropServices;
using OL = Microsoft.Office.Interop.Outlook;
難道我只是需要參考Office和Outlook Object庫的? – Alice 2011-04-04 13:08:23
我不斷收到'對象'不包含'To'的定義,並且沒有可以找到接受類型'object'的第一個參數的擴展方法'To'(你是否缺少using指令或程序集引用?認爲參考是錯誤的。 – Alice 2011-04-04 13:15:56
我使用VS2010與.Net 4,這使得olMail項目成爲一個動態的對象,因此它的工作。我將更新代碼,以便將olMail轉換爲適當的類型。 – JDunkerley 2011-04-05 15:40:42