VBA Lotus Notes发件人电子邮件地址为CC

时间:2016-11-21 10:56:20

标签: excel vba excel-vba lotus-notes

我在excel中创建了一个makro,将所有TODO发送给负责人。现在我想将发件人地址添加到CC中。我知道如何设置CC,但我不知道如何获取当前的发件人地址。

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

我认为它应该适用于笔记会话,但我找不到任何方法。

4 个答案:

答案 0 :(得分:2)

您可以使用NotesSession.UserName()。这是您要发送的Notes邮件。您不需要具有@和DNS域名的完整SMTP样式地址。您可以将用户的Notes用户名放在寻址字段中,Domino路由器将执行查找,它就可以正常工作。

只要(a)您与之建立会话的服务器是用户的主邮件服务器,同一Notes域的成员(与DNS域不同),上述情况属实,或Notes域的成员,其中包括用户的Notes域作为其目录服务(或其级联通讯簿列表,如果它使用20年的配置)的一部分,以及(b)用户名在上述范围内是唯一的。

答案 1 :(得分:0)

另一个建议,从最后发送的邮件中复制发件人,以进行测试

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

答案 2 :(得分:0)

我自动化Lotus Notes和发送电子邮件的方式是使用以下网站:

Send files using Lotus Notes

您要注意的区域位于底部,需要" noDocument"并将相关标题"主题","添加到"," Sendto"等

'为创建的电子邮件主要属性添加值。

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

答案 3 :(得分:0)

使用NotesSession.userName()获取当前用户名。如果您真的想要完整的电子邮件地址,您也可以使用@namelookup公式。

但是,我会远离通过COM访问笔记,因为它不能在64位上运行,IBM也不会在意它。我有几个使用这种方便技术的excel文件,但是自从我们移动到64位后它们都被打破了。检查这个旧的kb https://www-304.ibm.com/support/docview.wss?uid=swg21454291