import lotus.domino.NotesException;
import lotus.domino.Session;
import lotus.domino.NotesFactory;
import lotus.domino.Database;
import lotus.domino.EmbeddedObject;
import lotus.domino.RichTextItem;
import lotus.domino.Document;
import java.util.*;
/**
* 发送lotus邮件,客户是domino5.11版本,发送邮件需要参考5.11的designer的JAVA库对LOTUS数据库的操作。
* 添加的附件必须放在DOMINO服务器上,不能放在客户端添加附件,不要问为什么,这是事实。
* 例如:放在AS400 的em_01/test/test.tar,在程序使用相对路径,"test/test.tar"相对于邮件的根目录em_01.
*
* 在操作完后,要对DOMINO上的使用的资源释放掉,一般只须释放掉database和session. 语法:database.recycle(),session.recycle();
*
*
*
*
* @author songlb
*
*/
public class SendMailLotus {
private RichTextItem rti = null;
private Document memo = null;
private Session sNotes = null;
private Database dbMail = null;
public boolean attachFlag = false;
/** 日志文件 */
static org.apache.log4j.Logger log = org.apache.log4j.Logger
.getLogger(SendMailLotus.class);
public SendMailLotus() {
}
public void startSend(long userID, String[] to, String from,
String smtpServer, String popServer, String subject, int interval,
int priorityLevel, Date dateSent, String probeHost, String user,
String password, String returnState, String cawtoArgument,
int attachedSize, String sqlServer) throws AlarmException {
try {
//sNotes = (Session) NotesFactory.createSession(smtpServer, user, password);
String strIOR = NotesFactory.getIOR(smtpServer);
sNotes= NotesFactory.createSessionWithIOR(strIOR,user,password);
dbMail = (Database) sNotes.getDatabase(sNotes.getServerName(),
"mail\\" + user + ".nsf", false);
{
if (dbMail == null) {
log.error("无法打开用户数据库文件" + user + ".nsf");
} else {
memo = (Document) dbMail.createDocument();
memo.appendItemValue("Form", "Memo");
subject = "good mail!";
memo.appendItemValue("Subject", subject);
rti = (RichTextItem) memo.createRichTextItem("Body");
rti.addNewLine(2);
rti.appendText("test mail!");
String attachFilePath ="附件在DOMINO服务器上的位置";
java.util.Vector v = new java.util.Vector();
v.addElement(to[0]); // 收件人
memo.setEncryptOnSend(true);
memo.setSaveMessageOnSend(true);
memo.setSignOnSend(true);
memo.sign();
if (attachFlag && (!attachFilePath.trim().equals(""))) {
rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null,
attachFilePath, attachFilePath); // 添加附件
}
memo.setSaveMessageOnSend(true);
memo.send(true, v);
}
}
StringBuffer tmp = new StringBuffer();
for (int j = 0; j < to.length; j++) {
tmp.append(" ");
tmp.append(to[j]);
}
java.util.Date endDate = new Date();
log.info("发送邮件成功!");
MailDatabase.insertMailSent(userID, sqlServer, from,
tmp.toString(), smtpServer, popServer, subject, interval,
priorityLevel, dateSent, endDate, probeHost, attachedSize,
returnState, null, null);
} catch (NotesException e) {
log.error("发送LOTUS邮件失败:" + ((lotus.domino.NotesException) e).text);
} catch (Exception ex) {
log.error("发送LOTUS邮件失败:" + ex);
} finally {
try {
if(sNotes!=null){
if(dbMail!=null){
dbMail.recycle();
}
sNotes.recycle(); // 一定要关闭,否则会使SERVER崩溃
dbMail=null;
sNotes=null;
//log.info("===========lotus version:"+ sNotes.getNotesVersion());
}
} catch (NotesException ex1) {
log.error("关闭SESSION出错!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
SendMailLotus send = new SendMailLotus();
ProxyHandler.test();
try {
String[] p = new String[1];
p[0] = "song2c@sohu.com";
for (int i = 0; i < 3; i++) {
send.startSend(1, p, "mailtest", "10.68.100.233",
"10.68.100.233", "why i's check it!", 20, 1,
new Date(), "127.0.0.1", "mailtest", "password", "0",
"0", 0, "127.0.0.1");
}
} catch (Exception ex) {
ex.printStackTrace();
}
log.info("访问结束!");
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/changemyself/archive/2006/02/22/605732.aspx
分享到:
相关推荐
首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和处理邮件。在发送Outlook邮件时,我们通常不是直接与Outlook交互,而是使用SMTP(Simple...
此外,它还可能包含一个或多个`AttachmentEntity`对象,以表示邮件的附件。 在实际开发中,确保正确处理异常,如网络错误、权限问题等,是非常重要的。同时,考虑到性能,可以采用批处理的方式读取邮件,而不是一次...
标题"一个基于Lotus +JavaScript 实现的客户端邮件发送程序例子"表明我们将探讨如何利用JavaScript语言来构建一个功能,使用户能够在客户端直接发送邮件,而无需通过Web服务器或其他中间件。这种技术可以提高用户...
lotus domino 发送html邮件
接下来,我们使用CreateObject函数来创建一个Lotus Notes的会话对象,并使用GETDATABASE函数来打开指定的数据库。然后,我们使用CREATEDOCUMENT函数来创建一个新的文档对象,并使用EMBEDOBJECT函数来添加附件。 在...
在 Lotus Domino 中,我们可以使用 LotusScript 代理来实现邮件从一个数据库复制到另一个数据库中。 如何使用 LotusScript 代理实现邮件复制? 要使用 LotusScript 代理实现邮件从一个数据库复制到另一个数据库中...
Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...
在IT领域,IBM Lotus ...总之,在当前这个高度互联的世界中,学会如何在Lotus Notes中配置收发Internet邮件是一项基本而重要的技能。它不仅能够增强用户的数字通信能力,还能提高工作效率,促进个人与组织之间的协作。
总结,Lotus Notes邮件开发涉及到使用Java API创建邮件代理,通过搜索、创建文档,构建邮件内容,设置安全选项,以及最终发送邮件等多个步骤。开发者需要熟悉Lotus Notes的DOMINO API和Java编程语言,才能有效实现...
可以在Notes数据库中发送SMTP的邮件,从别的网站找到的
在使用Lotus Domino发送邮件时,为了保证系统的稳定性和效率,通常会设置一些限制,包括对单个邮件文档大小的限制。这个限制主要是为了避免用户发送过大的附件,导致邮件服务器负担过重,甚至可能影响其他用户的邮件...
在Lotus Domino开发环境中,Java代理是用于执行服务器端任务的重要工具,它们可以自动化许多功能,如处理数据、发送邮件等。"lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理...
JavaMail 是一个用于发送和接收邮件的开源API,它允许开发者在Java应用程序中集成电子邮件功能。本项目的目标是通过学习和应用JavaMail API,掌握邮件系统开发技术,包括理解邮件协议(如POP3和SMTP),配置开发环境...
最后,"利用Javamail来发送邮件"涉及到JavaMail API,这是一个开源的Java库,用于处理电子邮件。通过它,开发者可以创建、发送、接收和管理邮件。JavaMail API提供了一系列的接口和类,如Session、Message和...
Lotus Domino是一款强大的企业级协同软件平台,它主要用于构建服务器端的应用程序,支持B/S(浏览器/服务器)架构。...通过这个例子,开发者可以深入了解Lotus Domino构建BS应用的能力,并为自己的项目积累宝贵经验。
Java发送邮件是开发过程中常见的一项任务,特别是在自动化通知、数据报告或者用户互动方面。要实现这个功能,开发者通常需要引入一些特定的Java库,也就是jar包。这些jar包提供了与邮件服务器交互的API,帮助我们...
这时,我们将输出一个 JSON 字符串数组,其中包含三个对象,每个对象都有一个 `username` 属性。 结论 在本文中,我们讨论了如何在 Lotus Domino Java 代理中获取传递值 JSON。我们学习了如何使用 `doc....
通过这个过程,用户不仅能够使用Lotus Notes接收和发送Lotus服务器上的邮件,还能同时管理其他网络邮箱,实现多邮箱的统一管理,提高了工作效率。 【标签】:“lotus” 这个标签明确了本文内容专注于Lotus,尤其是...
在Lotus中接收Internet邮件的过程涉及到一系列的配置步骤,主要是设置Lotus Notes客户端连接到POP和SMTP服务器以实现邮件的收发。以下是一份详细的指南,解释如何在Lotus Notes中配置这些设置: 首先,打开Lotus ...
在这个实例中,用户可能通过一个表单界面来输入邮件信息,然后调用后台代码发送邮件。 `ptfiles.cs`可能包含了处理文件上传下载的逻辑,因为邮件经常需要附带附件。这部分代码可能会使用ASP.NET的文件上传控件,并...