2016-11-21 188 views
0

我在excel中創建了一個makro,將所有TODO發送給負責人。現在我想將發件人地址添加到CC中。我知道如何設置CC,但我不知道如何獲取當前的發件人地址。VBA Lotus Notes發件人電子郵件地址爲CC

Set session = CreateObject("Notes.NotesSession") 
Set db = session.GETDATABASE("", "") 
Call db.OPENMAIL 
Set doc = db.CREATEDOCUMENT 
Call doc.REPLACEITEMVALUE("CopyTo", strEmail) 

我覺得應該用筆記會議的工作,但我沒有找到這方面的任何方法。

+0

您是否嘗試過dooc.GetItemValue(「From」)? – h2so4

+0

是的,我得到一個空字符串 – livior

回答

0

另一種意見認爲,從去年複製發送者發送郵件,以測試

Set view = db.GetView("(($Sent))") 
Set sentdoc = View.GetLastDocument 
sender=sentdoc.getItemValue("From") 
+0

行'Set sentdoc = View.GetLastDocument'發生錯誤。運行時錯誤'91':對象變量或塊沒有設置 – livior

+0

視圖變量可能是空的,嘗試使用db.getview(「$發送」) – h2so4

+0

這樣的工作,但仍然得到一個空字符串... – livior

2

你可以只使用NotesSession.UserName()。這是您發送的Notes郵件。您不需要帶@和DNS域名的完整SMTP式地址。您可以將用戶的Notes用戶名放在尋址字段中,Domino路由器將執行查找,它將會正常工作。

只要(a)您建立會話的服務器是用戶的主郵件服務器,同一個Notes域的成員(與DNS域不同) ,或者包含用戶的Notes域作爲其目錄服務(或其級聯地址簿列表,如果它使用20年的配置)的一部分的Notes域的成員,以及(b)用戶名在上述範圍內是唯一的。

+0

謝謝,我會嘗試明天:)。我已經使用用戶名作爲問候。 – livior

+0

不錯,它的作品:D。非常感謝你 :)。 – livior

0

我自動化Lotus Notes和發送電子郵件的方式是使用下面這個網站:

Send files using Lotus Notes

要注意的是在底部,這需要「noDocument」,並增加了相關的區域標題「Subject」,「to」,「Sendto」等。

'將值添加到創建的電子郵件主要屬性。

With noDocument 
    .Form = "Memo" 
    .SendTo = vaRecipients 
    .CopyTo = vaCopyTo 
    .Subject = stSubject 
    .Body = vaMsg 
    .SaveMessageOnSend = True 
    .PostedDate = Now() 
    .Send 0, vaRecipients 
    End With 
+0

我已經可以自動發送郵件,但不知道如何獲得完整的電子郵件地址 – livior

+0

完整的電子郵件不需要填充。你只需要「名字」和「姓氏」,之後,Lotus會自動填充最匹配的名稱,因此請確保它們拼寫正確....否則它會崩潰。 – Jaz

0

使用NotesSession.userName()獲取當前用戶名。如果你真的想要完整的電子郵件地址,你也可以使用@namelookup公式。

但是,我將遠離通過COM訪問筆記,因爲它在64位上不起作用,IBM不會在乎它。我有幾個使用這種方便的技術的excel文件,但是自從我們轉移到64位以來,它們都被破壞了。檢查這個老版本https://www-304.ibm.com/support/docview.wss?uid=swg21454291

+0

這是真的。 Notes客戶端是32位,IBM不支持從64位代碼訪問它的COM類。當你在VB中編寫代碼時,這並不是問題,並且可以將代碼構建爲以32位的方式運行,但在使用VBA編寫代碼時需要在64位Excel程序中運行,這是一個問題。 –

相關問題