2016-11-21 148 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程序中运行,这是一个问题。 –

相关问题