2016-02-01 94 views
0

發送用戶定義的字段我一直在苦苦掙扎在這個問題上並停止約3周。我創建了一個Outlook自定義形式,讓我已經創建了一個用戶定義的字段的用戶類型(姑且稱之爲myField1myField2)與標準CC主題沿着日期領域。Outlook自定義窗體:在HTML

用戶填寫表單,點擊發送,而不是發送自定義窗體給收件人,我希望它送我的用戶定義字段(HTML?)和關閉形式窗口。這使得收件人可以查看和打印Outlook的預覽窗格中輸入的字段並使其可讀。我應該在探索Outlook區域表單以瞭解我正在嘗試做什麼?我現在的代碼不會產生錯誤,但它什麼也不做! - 表格以表格形式發送。我所訪問的腳本編輯器在Outlook 2010中非常沮喪..

Function Item_Send() 
'Dim olApp As Outlook.Application 
'Dim objNS As Outlook.NameSpace 
'Dim mailItem As Outlook.mailItem 

Set olApp = CreateObject("Outlook.Application") 

'Outlook.ApplicationClass _app = new Outlook.ApplicationClass(); 
'Outlook.Application olApp = (Outlook.Application)_app 
'Outlook.NameSpace olNameSpace = _app.GetNamespace("MAPI") 

'Create mail item 
'Set objMail = myOlApp.GetItem(OlItemType.olMailItem) 
Set mailItem = Application.CreateItem(olMailItem) 
'Outlook.mailItem mailItem = (Outlook.mailItem)olApp.CreateItem(Outlook.OlItemType.olMailItem) 

'With mailItem 
    mailItem.Subject = item.Subject 
    mailItem.Recipients.Add ("emails that I typed into the To: box") 
    mailItem.Body = "This is the Body of an e-mail message" 
    'Set body format to HTML 
    mailItem.BodyFormat = 2 
    mailItem.HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Type the message text here. </BODY></HTML>" 
    mailItem.Send() 
'End With 

'Set olMailItem = Nothing 
Set olApp = Nothing 
End Function 

回答

0

您仍然需要生成一個包含自定義字段的名稱和值的HTML標記。所需要的只是一些明智的字符串構建,你會得到你想要的內容。您可以通過MailItem訪問您的自定義字段。 UserProperties.Find方法。爲每個字段調用該方法,並從UserProperty.Name和.Value屬性填充HTML。

+0

我發現身體是比較容易的部分,並將其保存到最後。 –

0

看起來你需要包括用戶屬性(與自定義控件關聯)值到郵件正文中。爲了完成任務,你可以處理ItemSend事件每當微軟Outlook項目被髮送後即被啓動應用程序類的,或者由用戶通過檢查(檢驗員關閉前,但用戶後,點擊發送按鈕)或當某個Outlook項目的Send方法(如MailItem)在程序中使用時。我想你做的已經,如果是這樣......

首先,沒有必要在ItemSend事件處理程序,以創建新的Outlook應用程序實例:

Function Item_Send() 
'Set olApp = CreateObject("Outlook.Application") 
Set olApp = Application 

使用Application屬性。

二,ItemSend事件處理程序應該像下面的一個:

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean) 

沒有必要創建一個新的MailItem實例,你已經得到訪問現有項目。正在發送的項目作爲參數傳遞給處理程序。

+0

我完全重做代碼,我被陷在傳遞「爲:」用戶解決自定義表單字段。所以我想將這個「To:」字段傳遞給我的newMsg項目,但它僅僅是傳遞的用戶名。問題在於:用戶名是一個相當通用的用戶名,因此無法根據GAL進行解析。爲什麼我不能只是通過用戶已經進入到我的newMsg漂亮解析的收件人?我現在假設我要處理的命名空間和會話? –