繁体   English   中英

Lotus Notes Java API。 邮件转发

[英]Lotus Notes Java API. Mail forwarding

我想将电子邮件从我的Lotus Notes收件箱转发到我的gmail帐户。

Lotus Notes规则和代理在我们的服务器上被禁用,因此我为此开发了外部应用程序。 我正在使用document.send方法,并且邮件成功到达了我的Gmail邮箱。 唯一的问题是,电子邮件经常也在我的Lotus Notes收件箱中重复。 我只是发现原因是我没有清理“ CC”和“ BCC”字段,但是,我正在寻找一种直接转发电子邮件的方式-这意味着保留原始CC,BCC和TO字段-与转发代理完全相同。

我在Windows 7 64位上使用“ IBM Notes 9”。

我已经准备了一个代码样本来演示我在做什么。

package com.example;

import lotus.domino.*;

public class TestMailForwarder {
    public static void main(String[] args) throws NotesException {
        NotesThread.sinitThread();
        try {
            Session notesSession = NotesFactory.createSession(
                    (String) null, (String) null, Consts.NOTES_PASSWORD);
            DbDirectory dir = notesSession.getDbDirectory(Consts.NOTES_SERVER);
            Database mailDb = dir.openDatabaseByReplicaID(Consts.MAILDB_REPLICA_ID);
            forwardAllEmails(mailDb);
        } finally {
            NotesThread.stermThread();
        }
    }

    private static void forwardAllEmails(Database mailDb) throws NotesException {
        View inbox = mailDb.getView("$Inbox");
        //noinspection LoopStatementThatDoesntLoop
        for (Document document = inbox.getFirstDocument(); 
                 null != document; 
                 document = inbox.getNextDocument(document)) {
            document.send(Consts.GMAIL_ADDRESS);
            break;
        }
    }
}

与其尝试将邮件发送到您的GMail,不如使用Gmail的IMAP界面上传邮件。 您可能需要将消息作为MIME内容获取-可能它们已经用于外部传入电子邮件,然后将其推送到GMail。 我没有现成的代码示例,仅一个相反的示例将GMail放入Notes ,但是您应该可以将其用作起点。

MIME转换的代码示例在IBM Technote中

希望能有所帮助

您不能对在客户端级别运行的代码进行透明转发。 纯SMTP系统通过保留RFC-822标头内容,同时更改RFC-821 RCPT TO数据来做到这一点。 Domino不会为客户级代码提供对这些代码的独立控制。 它仅使用SendTo,CopyTo和BlindCopyTo项目。 (做这些事情,邮件管理和归档供应商发挥了一些技巧,但是它们需要对Domino服务器的路由器配置以及另一端的软件进行特殊更改。

完成此操作的另一种方法(针对您在评论中提出的问题)是使Java代码直接与gmail SMTP服务器建立连接。 我不确定这有多容易。 关于此问题的评论指出,Java Mail API允许您与RFC822标头分开控制RCPT TO,但是除了注意有一个SMTPTransport类之外,我没有研究其他细节-这是我要在的地方寻找与RFC-821协议有关的任何内容。 更大的问题是,您将必须控制将邮件转换为MIME格式。 使用Notes邮件,您可能会混合使用Notes RTF和MIME。 在Notes 8.5.1及更高版本中有一个convertToMIME方法 ,但这只会转换消息正文。 您必须单独处理任何标题内容。 (我并没有真正加快Notes 9的速度,但是AFAIK即使将消息拖放到桌面时客户端中具有创建.EML文件的功能,也没有API可以为您做这件事。)

最后,我找到了一个可用的解决方案: AWESYNC.MAIL 它是一种商业软件,但确实可以满足我的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM