JAVA使用B/S模式(网页)发送Notes邮件

功能描述就是在网页上有个Notes邮件发送的按钮,点击按钮后将邮件发送到指定的邮箱。功能仿佛很简单,实现起来也确实很简单,但是研究却花了不少的时间和精力,主要还是网上类似的案例是在太少。今天我就把研究成果放出与大家一起分享。

对于Notes开发需要做一些前期准备工作,而在这里对于网站开发就不在详细说明了,顺便提一句我的项目中使用了Richfaces架构。

一.Notes环境搭建

1.找到Notes.jar文件

在服务器端必须安装Notes邮箱,也就是Notes客户端。在这里我们需要用到Notes.jar文件,这个文件放在了C:\Program Files\lotus\notes\jvm\lib\ext 目录下(我的Notes安装在c盘program files下),搜了网上很多教程也提到过NCSO这个jar包,实际在此功能的开发中无需使用。当然在其他项目如果你需要用到NCSO这个jar包,你可以在D:\Program Files\lotus\notes\data\domino\java 此目录中找到(我的Notes数据文件选择的是d盘program files中与主程序是分离的),有人可能找不到domino这个文件夹,是因为安装Notes客户端时可选项中未安装Designer。顺便BS一下那些将NCSO.jar文件挂在CSDN上收10个积分的人,简直就是骗取初学者的积分嘛,坑爹啊!

2.配置系统运行环境

右击我的电脑选择属性找到高级标签中的环境变量按钮,然后在Path中添加 C:\Program Files\lotus\notes (我的Notes安装在c盘program files下)。添加环境变量的目的是因为Notes.jar包需要调用 nlsxbe.dll,此dll就存放在此目录中。(我在windows2003系统下通过运行java控制台项目发送Notes邮件时,遇到了“nlsxbe.dll 未找到相关程序”的错误,但是在windowsXP中却没任何问题,这真是个奇怪的问题)

3.将Notes.jar文件引入到你的网站项目中

二.编写代码实现邮件发送

这段代码还是挺眼熟的吧,因为网上有类似的例子,唯一不同点是,这里使用了NotesThread.sinitThread()和NotesThread.stermThread(),代替了网上implements Runable

如果使用实现接口的方式那只能用于Application或Applet,,无法用于网站。在网页中只需调用sendMail()就行了。

import lotus.domino.Database;import lotus.domino.Document;import lotus.domino.EmbeddedObject;import lotus.domino.NotesFactory;import lotus.domino.NotesThread;import lotus.domino.Registration;import lotus.domino.RichTextItem;import lotus.domino.Session;public class Notes {public void sendMail() {try {NotesThread.sinitThread();final String mymailserver = "zh_srv1/abc";final String mymailfile = "mail/xykzx/lp2.nsf";Session s = NotesFactory.createSession();String p = s.getPlatform();System.out.println("Platform = " + p);Registration reg;reg = s.createRegistration();reg.switchToID("D:\\Program Files\\lotus\\notes\\data\\lp2.id", "password");Database db;db = s.getDatabase(mymailserver, mymailfile);System.out.println("Database title is " + db.getTitle()+ " and filepath is " + db.getFilePath());Document mailmessage;mailmessage = db.createDocument();mailmessage.replaceItemValue("Form", "Memo");mailmessage.replaceItemValue("Subject","applet test");mailmessage.replaceItemValue("SendTo", "xy2.zh@abc.com");RichTextItem rtitem = mailmessage.createRichTextItem("body");rtitem.appendText("测试");rtitem.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null,"d:\\notes.txt", "notes.txt");mailmessage.save();mailmessage.send("xy2.zh@abc.com");} catch (Exception e) {e.printStackTrace();}finally{NotesThread.stermThread();}}}

三. 参考文献

?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_EXAMPLES_COMPILING_AND_RUNNING_JAVA.html

此处含有大量的notes java开发的例子,希望对大家有帮助。

得意时应善待他人,因为你失意时会需要他们

JAVA使用B/S模式(网页)发送Notes邮件

相关文章:

你感兴趣的文章:

标签云: