`
jiandeh
  • 浏览: 20594 次
  • 性别: Icon_minigender_1
  • 来自: 福建 厦门
社区版块
存档分类
最新评论

用java发送lotus邮件一个完整例子

    博客分类:
  • J2EE
阅读更多
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发送outlook邮件

    首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和处理邮件。在发送Outlook邮件时,我们通常不是直接与Outlook交互,而是使用SMTP(Simple...

    java连接Lotes邮件服务器(Domino) 读取邮件内容附件完整实例

    此外,它还可能包含一个或多个`AttachmentEntity`对象,以表示邮件的附件。 在实际开发中,确保正确处理异常,如网络错误、权限问题等,是非常重要的。同时,考虑到性能,可以采用批处理的方式读取邮件,而不是一次...

    一个基于Lotus +JavaScript 实现的客户端邮件发送程序例子

    标题"一个基于Lotus +JavaScript 实现的客户端邮件发送程序例子"表明我们将探讨如何利用JavaScript语言来构建一个功能,使用户能够在客户端直接发送邮件,而无需通过Web服务器或其他中间件。这种技术可以提高用户...

    lotus domino邮件从一个数据库复制到另一个数据库

    在 Lotus Domino 中,我们可以使用 LotusScript 代理来实现邮件从一个数据库复制到另一个数据库中。 如何使用 LotusScript 代理实现邮件复制? 要使用 LotusScript 代理实现邮件从一个数据库复制到另一个数据库中...

    lotus domino 发送html邮件

    lotus domino 发送html邮件

    用VBA操纵Lotus notes发邮件

    接下来,我们使用CreateObject函数来创建一个Lotus Notes的会话对象,并使用GETDATABASE函数来打开指定的数据库。然后,我们使用CREATEDOCUMENT函数来创建一个新的文档对象,并使用EMBEDOBJECT函数来添加附件。 在...

    使用Java mail API访问Lotus Domino邮箱

    Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...

    如何设置Lotus Notes收发Internet邮件

    在IT领域,IBM Lotus ...总之,在当前这个高度互联的世界中,学会如何在Lotus Notes中配置收发Internet邮件是一项基本而重要的技能。它不仅能够增强用户的数字通信能力,还能提高工作效率,促进个人与组织之间的协作。

    Lotus Notes邮件开发

    总结,Lotus Notes邮件开发涉及到使用Java API创建邮件代理,通过搜索、创建文档,构建邮件内容,设置安全选项,以及最终发送邮件等多个步骤。开发者需要熟悉Lotus Notes的DOMINO API和Java编程语言,才能有效实现...

    Lotus Notes发送SMTP邮件

    可以在Notes数据库中发送SMTP的邮件,从别的网站找到的

    lotus domino限制文档发邮件大小

    在使用Lotus Domino发送邮件时,为了保证系统的稳定性和效率,通常会设置一些限制,包括对单个邮件文档大小的限制。这个限制主要是为了避免用户发送过大的附件,导致邮件服务器负担过重,甚至可能影响其他用户的邮件...

    lotus domnio java代理传值

    在Lotus Domino开发环境中,Java代理是用于执行服务器端任务的重要工具,它们可以自动化许多功能,如处理数据、发送邮件等。"lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理...

    用Java语言实现简单邮件系统

    JavaMail 是一个用于发送和接收邮件的开源API,它允许开发者在Java应用程序中集成电子邮件功能。本项目的目标是通过学习和应用JavaMail API,掌握邮件系统开发技术,包括理解邮件协议(如POP3和SMTP),配置开发环境...

    java_6_source.rar_LOTUS_telnet java_简单计算器java

    最后,"利用Javamail来发送邮件"涉及到JavaMail API,这是一个开源的Java库,用于处理电子邮件。通过它,开发者可以创建、发送、接收和管理邮件。JavaMail API提供了一系列的接口和类,如Session、Message和...

    lotus domino BS开发在线注册用户完整例子

    Lotus Domino是一款强大的企业级协同软件平台,它主要用于构建服务器端的应用程序,支持B/S(浏览器/服务器)架构。...通过这个例子,开发者可以深入了解Lotus Domino构建BS应用的能力,并为自己的项目积累宝贵经验。

    java发邮件相关jar包

    Java发送邮件是开发过程中常见的一项任务,特别是在自动化通知、数据报告或者用户互动方面。要实现这个功能,开发者通常需要引入一些特定的Java库,也就是jar包。这些jar包提供了与邮件服务器交互的API,帮助我们...

    lotus domino java代理_获取传递值json

    这时,我们将输出一个 JSON 字符串数组,其中包含三个对象,每个对象都有一个 `username` 属性。 结论 在本文中,我们讨论了如何在 Lotus Domino Java 代理中获取传递值 JSON。我们学习了如何使用 `doc....

    LOTUS邮件接收设置

    通过这个过程,用户不仅能够使用Lotus Notes接收和发送Lotus服务器上的邮件,还能同时管理其他网络邮箱,实现多邮箱的统一管理,提高了工作效率。 【标签】:“lotus” 这个标签明确了本文内容专注于Lotus,尤其是...

    如何在LOTUS中接收internet的邮件

    在Lotus中接收Internet邮件的过程涉及到一系列的配置步骤,主要是设置Lotus Notes客户端连接到POP和SMTP服务器以实现邮件的收发。以下是一份详细的指南,解释如何在Lotus Notes中配置这些设置: 首先,打开Lotus ...

    asp.net调用lotusnotes收发邮件实例

    在这个实例中,用户可能通过一个表单界面来输入邮件信息,然后调用后台代码发送邮件。 `ptfiles.cs`可能包含了处理文件上传下载的逻辑,因为邮件经常需要附带附件。这部分代码可能会使用ASP.NET的文件上传控件,并...

Global site tag (gtag.js) - Google Analytics