簡體   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