如何从我的XPages代码向外部电子邮件ID发送电子邮件

如何从我的XPages代码向外部电子邮件ID发送电子邮件,xpages,lotus-domino,Xpages,Lotus Domino,我试图将电子邮件从我的XPage发送到外部电子邮件ID(我的个人电子邮件ID),但在执行代码时出错 我正在本地domino服务器上运行XPage应用程序。我没有更改任何配置设置以启用电子邮件/smtp,因为我不知道如何进行这些更改。这是本地服务器,在我的XPage应用程序中,我的要求是将电子邮件发送到个人电子邮件id,而不是lotus notes邮箱。在服务器上,我没有为任何用户配置邮件数据库 我尝试了以下方式发送邮件,但没有任何效果: //Approach 1, simply mention

我试图将电子邮件从我的XPage发送到外部电子邮件ID(我的个人电子邮件ID),但在执行代码时出错

我正在本地domino服务器上运行XPage应用程序。我没有更改任何配置设置以启用电子邮件/smtp,因为我不知道如何进行这些更改。这是本地服务器,在我的XPage应用程序中,我的要求是将电子邮件发送到个人电子邮件id,而不是lotus notes邮箱。在服务器上,我没有为任何用户配置邮件数据库

我尝试了以下方式发送邮件,但没有任何效果:

//Approach 1, simply mention from and to as external email addresses
var docMail : NotesDocument = database.createDocument();
docMail.replaceItemValue("Form","memo";
docMail.replaceItemValue("From","abc@gmail.com";//assume this is actual mail id
docMail.replaceItemValue("SendTo","def@gmail.com";//assume this is actual mail id
docMail.replaceItemValue("Subject","Test mail";//assume this is actual mail id
docMail.send();



//Approach 2, suppose I am logged in as test user1/Dev
//Configured forwarding address for test user1 and test user2 as abc@gmail.com and def@gmail.com respectively.

var docMail : NotesDocument = database.createDocument();
docMail.replaceItemValue("Form","memo";
docMail.replaceItemValue("SendTo","CN=Test User2/O=Dev";//assume this is actual mail id
docMail.replaceItemValue("Subject","Test mail";//assume this is actual mail id
docMail.send();
这里,docMail.send()抛出了一些SMTP错误,表示无法访问目标邮件系统


按照技术说明中给出的说明(参见下面注释中的链接)之后,现在docMail.send()抛出错误,控制台显示错误消息:“Development/Home不是已知的TCP/IP主机”(假设Development/Home是我的本地开发服务器)。

如果它说无法访问目标邮件系统,这意味着您的服务器无法打开到gmail.com的SMTP连接。您的网络中有东西阻止了它。这可能是服务器所在机器上的本地安全限制,也可能是网络上的某个地方。无论是哪种情况,这都是一种常规对策,旨在防止组织内的计算机在被恶意软件接管时发送未被检测到的垃圾邮件


您可能需要将服务器配置为使用出站中继服务器。下面是一个讨论在Domino8.5上配置中继的示例。其他版本的详细信息可能有所不同。Domino管理客户端的帮助数据库将包含适用于您的版本的适当详细信息。如果设置时遇到问题,ServerFault是适当的后续论坛,而不是StackOverflow

如果说目标邮件系统无法访问,则意味着您的服务器无法打开到gmail.com的SMTP连接。您的网络中有东西阻止了它。这可能是服务器所在机器上的本地安全限制,也可能是网络上的某个地方。无论是哪种情况,这都是一种常规对策,旨在防止组织内的计算机在被恶意软件接管时发送未被检测到的垃圾邮件


您可能需要将服务器配置为使用出站中继服务器。下面是一个讨论在Domino8.5上配置中继的示例。其他版本的详细信息可能有所不同。Domino管理客户端的帮助数据库将包含适用于您的版本的适当详细信息。如果设置时遇到问题,ServerFault是适当的后续论坛,而不是StackOverflow

根据文件
您应该根据文档将字段“sendTo”设置为“sendTo”,而不是“To”


您应该将字段“sendTo”而不是“To”

谢谢Richard,我将尝试建议的步骤。我已经尝试了“IBM technote”中给出的步骤,并尝试发送邮件。现在,在我的XPage中,我在“docMail.send()”行中得到了错误。我检查了服务器控制台,发现错误消息“Development/Home不是已知的TCP/IP主机”(假设Development/Home是我的本地服务器名)。我确信这是因为我在按照“IBM技术说明”进行必要更改时遗漏了一些内容。请提出建议。这是由于您的服务器试图打开与自身的TCP/IP连接,但找不到自己的IP地址。您可以通过在shell或cmd.exe窗口中尝试“ping development”命令来确认这一点。服务器使用以下来源来定位IP地址:names.nsf中的连接文档、names.nsf中的服务器文档中的端口表以及TCP/IP解析程序(在Windows上使用DNS和/或本地主机文件-hosts.TXT)。在开发环境中,最简单的方法通常是编辑服务器文档,并将正确的IP地址放入TCPIP端口的网络地址列中。在生产中,最好确保DNS条目存在。好的,Richard,我将进行建议的设置更改Hanks Richard,我将尝试建议的步骤。我已经尝试了“IBM technote”中给出的步骤,并尝试发送邮件。现在,在我的XPage中,我在“docMail.send()”行中得到了错误。我检查了服务器控制台,发现错误消息“Development/Home不是已知的TCP/IP主机”(假设Development/Home是我的本地服务器名)。我确信这是因为我在按照“IBM技术说明”进行必要更改时遗漏了一些内容。请提出建议。这是由于您的服务器试图打开与自身的TCP/IP连接,但找不到自己的IP地址。您可以通过在shell或cmd.exe窗口中尝试“ping development”命令来确认这一点。服务器使用以下来源来定位IP地址:names.nsf中的连接文档、names.nsf中的服务器文档中的端口表以及TCP/IP解析程序(在Windows上使用DNS和/或本地主机文件-hosts.TXT)。在开发环境中,最简单的方法通常是编辑服务器文档,并将正确的IP地址放入TCPIP端口的网络地址列中。在生产过程中,最好确保DNS条目存在。好的,Richard,我将为观察更改建议的设置Hanks Umeli。在我的程序中,我设置了“SendTo”字段,但这里输入的字段名不正确。即使在字段名为“SendTo”之后,程序仍然显示相同的错误。感谢Umeli的观察。在我的程序中,我设置了“SendTo”字段,但这里输入的字段名不正确。即使将字段名设置为“SendTo”,程序仍会显示相同的错误。