Lotus Notes - 邮件文档 - Principal / From,INetFrom,SentTime,ReceivedTime字段

时间:2014-08-25 05:49:36

标签: java email lotus-notes lotus-domino

我需要从Lotus Notes文档实例中获取SenderName,SenderEmail,ToNames,ToEmails,CCNames和CcEmails。

Issue1 查看lotus.domino.Document API我发现了方法getItems。当我将元素写入SenderEmail的system.out值时,可以找到ToEmails和CcEmails。

然而,SenderName(a.k.a From),ToNames的值无法轻易导出。

值似乎使用通用名称格式。例如,检查下面的system.output。

Principal = "CN=Amaw Scritz/O=fictive"
$MessageID = "<OF0FF3779B.36590F8A-ON80257D15.001DBC47-65257D15.001DC804@LocalDomain>"
INetFrom = "AmawScritz@fictive.com"
Recipients = "CN=Girl1/O=fictive@fictive"
MailOptions = "0"
SaveOptions = "1"   
From = "CN=Amaw Scritz/O=fictive"
AltFrom = "CN=Amaw Scritz/O=fictive"    
SendTo = "CN=Girl1/O=fictive@fictive"
CopyTo = "CN=Girl2/O=fictive@fictive"
BlindCopyTo = ""
InetSendTo = "Girl1@fictive.com"
InetCopyTo = "Girl2@fictive.com"    
$Abstract = "sasdasda"  
$UpdatedBy = "CN=Amaw Scritz/O=fictive" 
Body = "Hello World"

问题是如何从通用名称'CN = Amaw Scritz / O = fictive'获得'Amaw Scritz'。是否有可以使用的查找机制。 (我希望除了执行公用名的子字符串之外还有一个选项)

Issue2 是否可以从邮件文档实例中检索SentTime和ReceivedTime? 我知道有两种方法叫做getCreated和getLastModified。 getCreated可以与SentTime松散关联,getLastModified可以与ReceivedTime松散关联。是否有其他方法可以获得SentTime和ReceivedTime的时间。

Issue3 如何区分邮件文档是已发送邮件还是已接收邮件?

2 个答案:

答案 0 :(得分:3)

<强> Issue1
您可以使用Name课程 这里的示例来自link

import lotus.domino.*;

public class JavaAgent extends AgentBase {

  public void NotesMain() {

    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here) 

      // Create a hierarchical name
      Name nam = session.createName(
        "CN=John B Goode/OU=Sales/OU=East/O=Acme/C=US");

      // Returns:
      // John B Goode
      // John B Goode/Sales/East/Acme/US
      // CN=John B Goode/OU=Sales/OU=East/O=Acme/C=US
      System.out.println(nam.getCommon());
      System.out.println(nam.getAbbreviated());
      System.out.println(nam.getCanonical());

    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}

<强> Issue2
使用邮件文档的PostedDate字段和DeliveredDate字段的值。

Issue3
检查$Inbox文件夹是否包含您的邮件文档。或者看看Dave Delay answer

答案 1 :(得分:0)

我同意@ nempoBu4关于问题1和2.我不同意问题3的答案。收到的消息可以从收件箱中删除,因此检查$ Inbox无法帮助您区分已发送和已接收的消息。< / p>

假设您打开了文档,最好的方法是检查两个项目。已发送和已接收的邮件都具有PostedDate项,但只有收到的邮件具有DeliveredDate项。顺便说一句,草稿消息既没有PostedDate也没有DeliveredDate。