使用java中的notesFactory向lotus notes中的通用ID发送电子邮件

使用java中的notesFactory向lotus notes中的通用ID发送电子邮件,java,lotus-notes,Java,Lotus Notes,在一个项目中,通过LotusNotes从java应用程序发送电子邮件是一个需求 注意:domino服务器安装在客户机服务器上 目前我可以在本地机器上使用notesFactory发送电子邮件。使用notes.jar文件 它通过.nsf通过其密码访问用户 即通过密码创建安全连接。 通过调用 Session.getdatabase(null,“user.nsf”) 它工作得很好 但对于某些类型的电子邮件,客户端通过电子邮件共享通用id…(链接)。。。通过单击该链接,通用邮箱将在“活动用户”下打开。在单

在一个项目中,通过LotusNotes从java应用程序发送电子邮件是一个需求

注意:domino服务器安装在客户机服务器上

目前我可以在本地机器上使用notesFactory发送电子邮件。使用notes.jar文件

它通过.nsf通过其密码访问用户

即通过密码创建安全连接。 通过调用

Session.getdatabase(null,“user.nsf”)

它工作得很好

但对于某些类型的电子邮件,客户端通过电子邮件共享通用id…(链接)。。。通过单击该链接,通用邮箱将在“活动用户”下打开。在单独的选项卡中。。。我们可以通过它发送电子邮件

但尚未共享其.nsf路径或id或密码

单击该链接即可直接打开

现在我想在notesfactory会话中访问该通用id

我试图打开那个id,然后运行我的代码…但它仍然通过活动用户本身发送电子邮件

客户端尚未准备好共享该用户的id和密码详细信息。而不是在本地计算机中生成id文件

他们有没有办法通过这个id发送电子邮件

如果有人想要我正在使用的代码,我将与大家分享

但对于某些类型的电子邮件,客户端共享了一个通用的 id…(链接)通过电子邮件。。。通过点击该链接,通用邮件 框将在“活动用户”下打开。在单独的选项卡中。。。通过它我们可以 发送电子邮件

这听起来不像是一个“共享id”,更像是一个邮件数据库,其ACL设置为允许一组用户访问。 当您从Notes中发送电子邮件时(无论是通过UI还是通过代码),实际登录的用户将被用作发件人。这是故意设计的,以防止用户欺骗发件人

有一种不受支持的方法可以通过将电子邮件直接放入mail.box来伪造发件人地址,但这只能由知道自己在做什么的人来完成

几年前我写了一个脚本库,旨在帮助发送电子邮件。它包括设置发件人地址的功能。你可以在网上找到,免费使用。但我不建议您在不了解代码的情况下使用它

以下是守则的相关部分:

   Set mailbox = New NotesDatabase(mailservername,"mail.box")
   If mailbox.Isopen = False Then
      Print "mail.box on " & mailservername & " could not be opened"
      Exit Sub
   End If
   Set me.maildoc = New NotesDocument(mailbox)
   Call me.maildoc.ReplaceItemValue("Form","Memo")
   Set me.body = New NotesRichTextItem(maildoc,"Body")
   Call maildoc.ReplaceItemValue("Principal", me.p_principal)
   ' If principal is set, we want to fix so mail looks like
   ' it is coming from that address, need to set these fields
   Call maildoc.ReplaceItemValue("From", me.p_principal)
   Call maildoc.ReplaceItemValue("Sender", me.p_principal)
   Call maildoc.ReplaceItemValue("ReplyTo", me.p_principal)
   Call maildoc.ReplaceItemValue("SMTPOriginator", me.p_principal)
   Call maildoc.ReplaceItemValue("PostedDate",Now())
   If me.p_principal<>"" Then
      Call maildoc.Save(True,False) ' Save in mail.box
   Else
      Call maildoc.Send(True)       ' Send mail normally
   End If   
Set mailbox=newnotesdatabase(mailservername,“mail.box”)
如果mailbox.Isopen=False,则
无法打开打印“mailservername&”上的“mail.box”
出口接头
如果结束
Set me.maildoc=New NotesDocument(邮箱)
调用我.maildoc.ReplaceItemValue(“表单”、“备忘录”)
Set me.body=New NotesRichTextItem(maildoc,“body”)
调用maildoc.ReplaceItemValue(“主体”,me.p_主体)
'如果设置了principal,我们希望修复邮件
'它来自该地址,需要设置这些字段
调用maildoc.ReplaceItemValue(“From”,me.p_principal)
调用maildoc.ReplaceItemValue(“发件人”,me.p_主体)
调用maildoc.ReplaceItemValue(“ReplyTo”,me.p_principal)
调用maildoc.ReplaceItemValue(“SMTPOriginator”,me.p_委托人)
调用maildoc.ReplaceItemValue(“PostedDate”,Now())
如果我是p_校长,那么
调用maildoc.Save(True,False)'Save in mail.box
其他的
调用maildoc.Send(True)'正常发送邮件
如果结束
您可以使用主体字段设置发件人地址

但对于某些类型的电子邮件,客户端共享了一个通用的 id…(链接)通过电子邮件。。。通过点击该链接,通用邮件 框将在“活动用户”下打开。在单独的选项卡中。。。通过它我们可以 发送电子邮件

这听起来不像是一个“共享id”,更像是一个邮件数据库,其ACL设置为允许一组用户访问。 当您从Notes中发送电子邮件时(无论是通过UI还是通过代码),实际登录的用户将被用作发件人。这是故意设计的,以防止用户欺骗发件人

有一种不受支持的方法可以通过将电子邮件直接放入mail.box来伪造发件人地址,但这只能由知道自己在做什么的人来完成

几年前我写了一个脚本库,旨在帮助发送电子邮件。它包括设置发件人地址的功能。你可以在网上找到,免费使用。但我不建议您在不了解代码的情况下使用它

以下是守则的相关部分:

   Set mailbox = New NotesDatabase(mailservername,"mail.box")
   If mailbox.Isopen = False Then
      Print "mail.box on " & mailservername & " could not be opened"
      Exit Sub
   End If
   Set me.maildoc = New NotesDocument(mailbox)
   Call me.maildoc.ReplaceItemValue("Form","Memo")
   Set me.body = New NotesRichTextItem(maildoc,"Body")
   Call maildoc.ReplaceItemValue("Principal", me.p_principal)
   ' If principal is set, we want to fix so mail looks like
   ' it is coming from that address, need to set these fields
   Call maildoc.ReplaceItemValue("From", me.p_principal)
   Call maildoc.ReplaceItemValue("Sender", me.p_principal)
   Call maildoc.ReplaceItemValue("ReplyTo", me.p_principal)
   Call maildoc.ReplaceItemValue("SMTPOriginator", me.p_principal)
   Call maildoc.ReplaceItemValue("PostedDate",Now())
   If me.p_principal<>"" Then
      Call maildoc.Save(True,False) ' Save in mail.box
   Else
      Call maildoc.Send(True)       ' Send mail normally
   End If   
Set mailbox=newnotesdatabase(mailservername,“mail.box”)
如果mailbox.Isopen=False,则
无法打开打印“mailservername&”上的“mail.box”
出口接头
如果结束
Set me.maildoc=New NotesDocument(邮箱)
调用我.maildoc.ReplaceItemValue(“表单”、“备忘录”)
Set me.body=New NotesRichTextItem(maildoc,“body”)
调用maildoc.ReplaceItemValue(“主体”,me.p_主体)
'如果设置了principal,我们希望修复邮件
'它来自该地址,需要设置这些字段
调用maildoc.ReplaceItemValue(“From”,me.p_principal)
调用maildoc.ReplaceItemValue(“发件人”,me.p_主体)
调用maildoc.ReplaceItemValue(“ReplyTo”,me.p_principal)
调用maildoc.ReplaceItemValue(“SMTPOriginator”,me.p_委托人)
调用maildoc.ReplaceItemValue(“PostedDate”,Now())
如果我是p_校长,那么
调用maildoc.Save(True,False)'Save in mail.box
其他的
调用maildoc.Send(True)'正常发送邮件
如果结束

您可以使用Principal字段设置发件人地址。

Thanx它可以工作…添加replaceitemvalue对我有效…请告诉我如何将cc电子邮件id和附件添加到电子邮件正文???目前我可以使用embed对象发送附件,但无法将文本添加到该电子邮件文档中…@varsha-您真的应该开始一个新的电子邮件问题,因为这是不同的问题。你问题的答案在文档中,有些在我链接到的bog条目上