根據目前的資料夾為特定帳戶建立可傳送項目
本主題包含兩個程式代碼範例,示範如何建立可傳送的電子郵件專案和會議邀請,以及如何使用以目前資料夾為基礎的特定帳戶來傳送。
範例
當您使用 Application 物件的 CreateItem (OlItemType) 方法來建立 Outlook 專案時,會為該會話的主要帳戶建立專案。 在配置檔中定義多個帳戶的會話中,您可以建立特定 IMAP、POP 或 Exchange 帳戶的專案。
如果目前配置檔中有多個帳戶,而且您在使用者介面中建立可傳送的專案,例如,按兩下 [新增 Email] 或 [新會議],偵測器會以撰寫模式顯示新的郵件專案或會議邀請,然後您可以選取要從中傳送項目的帳戶。
本主題會示範如何以程式設計方式建立可傳送的項目,並使用特定的傳送帳戶來傳送該項目。 本主題有兩個程式代碼範例,示範如何為使用中檔案總管中的目前資料夾所決定的特定帳戶建立 MailItem 和 AppointmentItem 。
If you use Visual Studio to test this code example, you must first add a reference to the Microsoft Outlook 15.0 Object Library component and specify the Outlook variable when you import the Microsoft.Office.Interop.Outlook namespace. The using statement must not occur directly before the functions in the code example but must be added before the public Class declaration. The following line of code shows how to do the import and assignment in C#.
using Outlook = Microsoft.Office.Interop.Outlook;
在第一個方法中,CreateMailItemFromAccount 會先識別適當的帳戶,方法是比對從 Store 屬性取得的目前資料夾 (存放區,) 每個帳戶的預設傳遞存放區, (使用在會話的 Accounts 集合中定義的 DeliveryStore 屬性) 取得。 接著,CreateMailItemFromAccount 會建立 MailItem。
若要建立專案與帳戶的關聯,CreateMailItemFromAccount 會藉由設定帳戶,將帳戶的使用者指派為專案的發件者。MailItem 之 Sender 屬性的 CurrentUser.AddressEntry 屬性。 指派發件人屬性是很重要的步驟;如果您未指定寄件者,預設會為主要帳戶建立 MailItem 。 在方法的結尾處,CreateMailItemFromAccount 會顯示 MailItem。 請注意,如果目前的資料夾不在傳遞存放區上,CreateMailItemFromAccount 會為會話的主要帳戶建立 MailItem 。
private void CreateMailItemFromAccount()
{
Outlook.AddressEntry addrEntry = null;
// Get the Store for CurrentFolder.
Outlook.Folder folder =
Application.ActiveExplorer().CurrentFolder
as Outlook.Folder;
Outlook.Store store = folder.Store;
Outlook.Accounts accounts =
Application.Session.Accounts;
// Enumerate accounts to find
// account.DeliveryStore for store.
foreach (Outlook.Account account in accounts)
{
if (account.DeliveryStore.StoreID ==
store.StoreID)
{
addrEntry =
account.CurrentUser.AddressEntry;
break;
}
}
// Create MailItem.
Outlook.MailItem mail =
Application.CreateItem(
Outlook.OlItemType.olMailItem)
as Outlook.MailItem;
if (addrEntry != null)
{
// Set Sender property.
mail.Sender = addrEntry;
mail.Display(false);
}
}
下一個方法 CreateMeetingRequestFromAccount 類似於 CreateMailItemFromAccount,不同之處在於它會建立 AppointmentItem 而非 MailItem。 CreateMeetingRequestFromAccount 會先比對從 Store 屬性取得之目前資料夾 (的存放區,) 每個帳戶的預設傳遞存放區, (從會話的 Accounts 集合中定義的 DeliveryStore 屬性) 取得的預設傳遞存放區來識別適當的帳戶。 接著,CreateMeetingRequestFromAccount 會建立 AppointmentItem。
若要建立專案與帳戶的關聯,CreateMeetingRequestFromAccount 會將 Account 物件設定 為 AppointmentItem 的 SendUsingAccount 屬性,以將該帳戶指派為專案的傳送帳戶。 指派 SendUsingAccount 屬性是很重要的步驟;如果您未指定帳戶,則預設會為主要帳戶建立 AppointmentItem。 在方法的結尾,CreateMeetingRequestFromAccount 會顯示 AppointmentItem。 請注意,如果目前的資料夾不在傳遞存放區上,CreateMeetingRequestFromAccount 會為會話的主要帳戶建立 AppointmentItem。
private void CreateMeetingRequestFromAccount()
{
Outlook.Account acct = null;
Outlook.Folder folder =
Application.ActiveExplorer().CurrentFolder
as Outlook.Folder;
Outlook.Store store = folder.Store;
Outlook.Accounts accounts =
Application.Session.Accounts;
foreach (Outlook.Account account in accounts)
{
if (account.DeliveryStore.StoreID ==
store.StoreID)
{
acct = account;
break;
}
}
Outlook.AppointmentItem appt =
Application.CreateItem(
Outlook.OlItemType.olAppointmentItem)
as Outlook.AppointmentItem;
appt.MeetingStatus =
Outlook.OlMeetingStatus.olMeeting;
if (acct != null)
{
// Set SendUsingAccount property.
appt.SendUsingAccount=acct;
appt.Display(false);
}
}