Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Zugriff auf externe .JAR-Files (POP3, SMTP)

<< < (4/8) > >>

Manfred Dillmann:
Hallo Axel,


--- Zitat von: Marinero Atlántico am 02.02.05 - 15:10:58 ---weil die Sprache so gut ist, hat man eben viel Zeit zum lesen.  :P

--- Ende Zitat ---

mache ich jetzt in Nebenzeiten, aber von Grund auf - meine Güte, das ist eine Menge Holz...

Ich hätte noch eine konzeptionelle Frage:
Ulrich hatte ja die Idee, direkt noch einen Ersatz für SMTP Auth einzubauen. Ich müsste also einen Listener-Task nachbauen der nach einem Start konstant läuft, auf Requests wartet und nebenbei in einem einstellbaren Zeittakt den POP2SMTP Teil erledigt. Ich bin z.Z. noch nicht in der Lage, eine einzige Anforderung zu Coden, daher zielt die Frage nur in Richtung der Realisierbarkeit.

1. Domino-Agent auf dem Domino-Server
Scheidet nach meinen bisherigen Überlegungen aus. Der Agent terminiert ja (oder sollte das tun) und dann ist mein Listener-Task weg. Der muss aber wohl konstant laufen.

2. Tool as Addin-Task auf dem Domino-Server
Julian Robichaux auf auf nfstools.com ein Beispiel, wie man für den Domino-Server ein Java-Addin (load runjava ...) programmieren kann. Allerdings schreibt er, dass sowas zumindest unter R5 undokumentiert ist. Ich finde auch keine weiteren Informationen was den Einsatz unter ND6 angeht. Scheint auch nicht der richtige Ansatz zu sein.

3. Eigenständiges Tool
Im Javabuch.de bin ich auf die Klasse "ServerSocket" gestossen. Durch das Beispiel dort (SimpleEchoServer.java) konnte ich sehen, dass man auf dieser Basis einen Server (egal für welche Requests) realisieren kann. Das klingt bislang für mich nach der einzig realisierbaren Möglichkeit, aber:

Wenn ich sowas programmieren könnte und hätte ein fertiges .class File, wie kann ich das auf dem Domino-Server starten?
- Müsste ich auf der Maschine eine JRE installieren?
- Könnte ich das mit der Domino-JVM starten?
- Wenn ja, wie?

Zudem wäre es fein, wenn ich auf eine Konfigurations-NSF zugreifen könnte, um z.B. die definierten POP-Konten usw. in einer Notes-Datenbank verwalten zu können.

Vielleicht  Bestimmt hast Du ein paar Ideen. Danke schon mal für Deine Mühe...

Gruß
Manfred

Marinero Atlántico:
Hallo Manfred,

Domino Server Tasks sind wohl leichter in C zu schreiben. Falls es mit Java geht würden die einfach nur die C-Funktionalität einwickeln und ein extra eigenes Interface dafür haben. Genau in diesem Zusammenhang läufst du aber wieder in ein Memory Leak Minenfeld, das mehr mit der Qualität von Java Wrappern von Lotus zu tun hat als mit Java selber (s. Diskussion auf blog von Ben Poole). LS2J ist jedenfalls ein mittlerer Skandal.
Eine tiefergehende, nicht ganz perfekte Erklärung der Java Seite ist hier (mein Posting): http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=3&t=007112
Früher ist bei ähnlichen Aktionen von mir immer Peter den Haan oder Thomas Paul gekommen und hat mich verbessert. Die lassen auch nach.  >:(

Dann dürfte das mit dem Listener, der seine Notifikation an einen Client (also verteilt) sendet, sowieso ziemlich komplex sein. Das geht sicher sehr gut mit Corba  ;D
Ich fänds echt Klasse, wenn ich endlich jemanden kennen würde, der sich ernsthaft in Corba einarbeitet. Mir war das bisher immer zu komplex. 
eine dagegen einfachere Möglichkeit wäre auf dem Client eine Art Webservice-Server zu installieren, der vom Mail-Server Nachrichten geschickt bekommt (keine schlechte Idee, möglicherweise überschätzt du die Komplexität Webservices zu programmieren).

Noch einfacher und auf jeden Fall zu bedenken: Geschedulter Prozess vom Client der alle 5 Minuten den Mail Server auf neue Nachrichten pollt. Es gibt doch jetzt zeitgesteuerte Agenten vom Notes-Client?
Oder ein open Source Projekt namens quartz und da gibt es noch eine einfachere Alternative. Quartz ist nicht schwierig.

Axel

Manfred Dillmann:
Hallo Axel,

erst mal Danke für Deine Antwort.


--- Zitat ---hat als mit Java selber (s. Diskussion auf blog von Ben Poole). LS2J ist jedenfalls ein mittlerer Skandal.
--- Ende Zitat ---

Ich habe Deine Posts auf Bens Seite gelesen. Ich bin nicht so bekoppt, dass ich noch mal was mit LS2J anfange. Ich möchte alles in Java machen.

Ich lese aus Deiner Antwort (kann mich auch täuschen), dass Du den Fokus der geplanten Anwendung noch nicht erfasst hast:

Alle geplanten Aktivitäten beziehen sich auf den Domino-Server, der Notes-Client ist nicht beteiligt.

1. POP3-to-SMTP
Wer (wie ich seit Anfang dieses Jahres) seinen Domino-Server nicht mehr "scharf" im Web stehen hat, sondern ein Hosting-Packet einen Providers nutzt (ist übrigens gar nicht schlecht: nix mehr mit eigenverantwortlichem 24x7 Betrieb, ich habe in meinem Packet auch SPAM-Filter und Virenscanner), wird seine Mail via POP3 von den Konten holen und via SMTP an seinen Domino-Server weitergeben. Der Domino-Server kann das nicht von Haus aus.

DAS kann man durchaus mit einem Domino-Java-Agenten und der Java-Mail-API machen. Hab's nur gerade noch nicht fertig.  ;)

2. SMTP-Mails mit Auth beim Provider abgeben (Ulrich ist schuld)
In der o.g. Konstellation muss/sollte (OK, ich sende z.Z. direkt, geht auch) man seine SMTP-Mail beim Provider "abliefern" (Relay), der sich dann um den weiteren Transfer der SMTP-Mail kümmert. Im Prinzip das, was ein stand-alone eMail-Client auch macht, wenn er eine eMail versenden möchte.

Die Provider verlangen eine Authentifizierung und das kann der Domino-Server auch nicht selbst. Also muss man seinen Domino-Server so einstellen, dass er alle Mail bei einem Tool abliefert, welches dann die SMTP-Mails mit Auth beim Provider abgibt.

Soweit der Hintergrund. Ich brauche also eine Lösung, die Punkt 1 und 2 abdeckt.

1 könnte man mit einem Java-Agenten machen. Der terminiert aber. Für 2 müsste ich einen (einfachen) SMTP-Server nachbilden. Der nimmt die Mails vom Domino-Server und gibt sie mit Auth beim Provider ab.

Wenn Du unter diesem Aspekt noch mal meinen letzten Post liest, wird die Aufgabenstellung bestimmt klarer.

Der wesentliche Knackpunkt scheint für mich zu sein:
Wie bekomme ich so ein Java-Teil (was auch immer das genau sein mag...) auf dem Domino-Server gestartet, welches

- im einstellbaren Zeittakt den POP-2-SMTP Teil macht
- nicht terminiert und einen SMTP-Server miemt?

Die Kernfrage aus meinem letzten Post:

--- Zitat ---Wenn ich sowas programmieren könnte und hätte ein fertiges .class File, wie kann ich das auf dem Domino-Server starten?
- Müsste ich auf der Maschine eine JRE installieren?
- Könnte ich das mit der Domino-JVM starten?
- Wenn ja, wie?

--- Ende Zitat ---

Gruß
Manfred

Marinero Atlántico:
vielleicht kann apache.James diese Authentifizierung gegen den Provider. Dann würdest du die Mails von Domino an James leiten und der James gibt sie dann an den Provider weiter.
Wenn Julian Robinchaux das geschrieben hat, lässt sich das doch ausprobieren.
Schick mal den Link.
Vermutlich kannst du die Klassen als jars irgendwo im Server ablegen und irgendwie da an den richtigen Stellen bekanntmachen.
Als vm würde dann wohl die vom Domino Server benutzt. Der hat ja eine.
James ist vielleicht eine ernsthafte Alternative.

Gruß Axel

Manfred Dillmann:
Hallo Axel,

>>vielleicht kann apache.James diese Authentifizierung gegen den Provider.<<

Ich wüsste noch nicht, wie ich das programmieren muss, was ich aber gelesen habe sagt aus, dass man das mit JavaMail API machen kann.

Hey, ich will doch selbst was programmieren und nicht so nen armen Buttler James "einspannen".  ;D

>>Wenn Julian Robinchaux das geschrieben hat, lässt sich das doch ausprobieren.<<

Er hat geschrieben:

--- Zitat ---Keep in mind that using the the lotus.notes.addins.JavaServerAddin class from Notes.jar is totally unsupported functionality (at least in R5), so you are using it at your own risk. Normal caveats apply.
--- Ende Zitat ---

>>Schick mal den Link.<<

http://www.nsftools.com/tips/JavaTips.htm#javaaddin

>>Als vm würde dann wohl die vom Domino Server benutzt. Der hat ja eine.<<

Stimmt. Aber das war ja meine Frage: Auf dem Domino-Server "gammelt" so ein JAR rum. Das kann alle Anforderungen aus sich heraus. Wie starte ich sowas auf dem Domino-Server?

Es gibt ja Dinge, die via laod runjava laufen, z.B. den ISpy - Task. Aber da finde ich kein passendes JAR auf der Pladde...

Gruß
Manfred

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln