2016-07-19 74 views
1

Ich möchte eine Notes Mail von einigen HTML-Quelle (mit möglicherweise Inline-Bild und Anlagen) mit Java durch DIIOP erstellen. Ich habe versucht, Mime-Artikel zu verwenden, aber das Signieren und Verschlüsseln würde Internet-Zertifikate benötigen. So scheint Rich Text die einzige Wahl zu sein, aber ich konnte keine Java API finden, um HTML in Richtext zu importieren. In der Notes Client-GUI kann man aus Text/HTML importieren. Und ich habe auch bemerkt, dass MIME-Mails, die aus dem Posteingang exportiert werden, "vom DIIOP-Server aufgelistet" sind. Gibt es eine Möglichkeit, HTML programmatisch in Lotus Notes-Nachricht importieren, so dass Zeichen und verschlüsseln mit Lotus Notes internen Zertifikate verwendet werden können.Import HTML Lotus Notes Richtext mit Java

Danke und Grüße,

Shing

+0

Sind Sie sicher, dass der MIME-Text die Ursache für die Internet-Zertifikate ist? D. h., Setzen Sie in die Adressfelder vollständig benotete Benutzernamen oder setzen Sie Internet-E-Mail-Adressen ein? –

+0

Ich habe nur vollständige Notizen Benutzernamen in den Adressfeldern, keine Internet-E-Mail-Adresse. Aber es scheint, dass wann immer ich MIME benutze und signiere und/oder verschlüssle, habe ich NotesException. NotesException: Notes-Fehler: Der kryptografische Schlüssel wurde nicht gefunden. –

+0

Okay. Ich verstehe jetzt. Siehe meine Antwort unten. –

Antwort

1

Sie sollten mit Hilfe von Java über DIIOP verschlüsseln können, aber Sie auf diese Weise nicht unterschreiben können.

Sie benötigen einen privaten Schlüssel, um eine Nachricht oder ein Dokument zu signieren. Die untergeordneten Notes-APIs erwarten, dass sich der private Schlüssel in der aktuellen ID-Datei für die Sitzung befindet. Wenn Sie DIIOP verwenden. Ihr Java-Code wird lokal ausgeführt und hat keinen Zugriff auf Ihre Benutzer-ID-Datei. Die untergeordneten Notes-APIs werden nicht auf demselben Computer ausgeführt, auf dem Java ausgeführt wird. Normalerweise befindet sich nicht einmal eine Notes oder Domino-Installation in dem Code, in dem der Java-Code ausgeführt wird. Daher ist der Code für die Low-Level-APIs nicht einmal für die JVM verfügbar.

In einer DIIOP-Konfiguration wird der Lotus Notes-API-Code auf dem Domino-Server ausgeführt. Die einzige ID-Datei, auf die sie zugreifen kann, ist die Server-ID-Datei. Sie können nicht mit dem privaten Schlüssel des Servers signieren.

+0

Aber wenn ich ein Dokument mit Richtext-Element nur mit Java über DIIOP erstellen, kann ich signieren und/oder verschlüsseln, aber nicht so mit MIME-Element. Ich habe versucht, einige Internet-Cert in den Lotus-Client zu importieren, und dann senden MIME-Dokument von Local, bemerkte ich, dass das Dokument mit dem Internet-Zertifikat signiert sind. Wir planen jedoch nicht, Internet-E-Mail-Zertifikate zum Senden von E-Mails in Notes zu verwenden. –

+0

Ich kann das nicht erklären, aber ich habe eine Vermutung. Sie können nicht signieren, ohne einen privaten Schlüssel aus einer ID-Datei zu lesen. Ich bin mir zu 100% sicher. Vielleicht ignoriert die Java-API das Problem mit Rich Text, d. H. Es signiert es nicht, aber es wird auch kein Fehler ausgegeben. Aber mit MIME ist der Codepfad in der Java API anders und es wirft den Fehler. Das ist meine beste Schätzung. –

0

Irgendwann eine Lösung finden, abeit ziemlich hacky. Erstellen Sie ein Dokument mit MIME, speichern Sie dann in der Datenbank und schließen Sie die Sitzung. Wenn Sie eine neue Sitzung öffnen und das gespeicherte Dokument abrufen, wird es vom Domino Server in Richtext konvertiert. Es gibt jedoch einige Spuren von MIME, die mit DXLExporter in DXL exportiert werden. Entfernen Sie in dem exportierten DXL die Elemente "MIME_Version" und "$ MIMETrack". Inline-Bilder anderer Typen als jpg und gif (PNG und GIF) werden nicht richtig behandelt, müssen das XML-DOM ein wenig herumspielen, um es zu beheben, dann importieren Sie die feste DXL mit DXLImporter, und dort haben Sie eher ein konvertiertes Richtext-Dokument ähnlich wie beim Importieren von HTML-Dateien in die Note Client GUI. Besser als keiner.