EMails versenden in Java

KaffeeFan

Bekanntes Mitglied
Hey Leute,

ich soll mich gerade darüber informieren, wie ich in Java mittels "MAPI" Emails versenden kann.
Habe jetzt schon einiges gelesen, aber alle Beiträge sind uralt...
Hat jemand damit schon gearbeitet? Gibt es MAPI noch? Hat jemand vielleicht eine Dokumentation oder ähnliches? ...

Vielen Dank im Voraus
Gruß
Luk
 
K

kneitzel

Gast
Wieso willst Du unbedingt MAPI verwenden?

Üblich ist es, dass Emails per SMTP versendet werden. Der benötigt zwar gewisse Konfigurationen aber es nutzt den Standard für den Versand von Emails. Und da wäre dann wohl die JavaMail API der bevorzugte Kandidat wenn es um eine Java Library geht.

Konrad
 
K

kneitzel

Gast
ok, Chef austauschen :)

Also Mapi war mal etwas, das damals viel benutzt wurde und mir manches graues Haar beschert hat. Nach meinen Erkenntnissen ist es aber eigentlich nicht mehr aktuell.

Evtl. macht es Sinn, den Chef nach den eigentlichen Anforderungen zu fragen. Es ist immer schlecht, wenn so technische Lösungen mit vorgegeben werden statt die eigentlichen Anforderungen zu benennen. Freundlich nach den Hintergründen zu fragen kostet hoffentlich nichts ....
 

KaffeeFan

Bekanntes Mitglied
Also ich soll recherchieren wie ich mittels Java Emails versenden kann, d.h. in Java werden Betreff, Empfänger, Anhänge, Emailtext etc. festgelegt und beim Ausführen soll sich das "Neue Email schreiben"-Fenster von Outlook öffnen mit den Betreff etc. schon ausgefüllt...

Gruß
Luk
 

KaffeeFan

Bekanntes Mitglied
also über IMAP und SMTP machen wir das schon, allerdings soll ich eine Lösung finden die über MAPI läuft...
Habe gerade JACOB heruntergeladen und teste es gerade mal an...

Danke für die bisherigen Antworten!

Gruß
Luk
 

VirtualIndex

Aktives Mitglied
Aber wie es gesendet wird, ist doch dann von Outlook abhängig und geht eh per Mailserver raus? Wofür soll dann eine Mail-Bibliothek die gleiche Funktionalität bieten, wenn sie eh nicht verwendet wird? Irgendwas stimmt hier nicht.
 
K

kneitzel

Gast
Nunja - der Vorteil soll ja sein, dass eben kein weiterer Server mehr konfiguriert werden muss. Und der Anwender kann die Email noch selbst bearbeiten ehe sie abgesendet wird. Das sind schon durchaus gute Argumente für so eine Lösung.

Ich habe da jetzt auch noch einmal etwas recherchiert und bin da auf etwas gestoßen, zu dem ich eher raten würde. (MAPI ist in meinen Augen sehr veraltet und die Konfiguration war nicht immer trivial in der Vergangenheit wenn ich mich recht erinnere. Meine Erfahrungen damit sind aber schon >15 Jahre zurück!)

Wenn es nicht EIN Mailprogramm sein muss (das eben per MAPI konfiguriert ist) sondern immer Outlook, dann könnte man nutzen, dass Microsoft die Office Produkte eigentlich komplett von außen steuerbar gemacht hat. OLE ist da ein Stichwort, wobei ich jetzt selbst noch nicht tief genug nachgesehen habe. Kann sein, dass da die .Net Schnittstelle das schon abgelöst hat.

Bezüglich OLE hätte ich http://www.vogella.com/tutorials/EclipseMicrosoftIntegration/article.html gefunden. Das könnte evtl. schon weiter helfen. Falls das andere von Interesse ist, dann müsste ich das auch erst weiter recherchieren - da würde aber dann wohl erst einmal eine .Net / Windows Lösung bei raus kommen. Hier wäre es dann notwendig, einen Wrapper für Java zu schreiben per JNI.
Gehen tut das somit auf jeden Fall. Die Frage ist nur, wie viel Arbeit das ggf. werden wird.

Konrad
 

KaffeeFan

Bekanntes Mitglied
Wow, vielen Dank für deine Ausführung und, dass du ein bisschen recherchiert hast!
Also ich werde es bei nächster Gelegenheit mal ansprechen und mich auch mal in OLE schlaulesen, bis dahin muss ich aber wohl erstmal mit MAPI weitermachen.
Also mein jetziger Stand ist soweit, dass ich über Java via MAPI Emails in Outlook senden kann. Betreff, Text etc. kann ich auch angeben...
Das einzige Problem das noch gelöst werden soll ist, dass die Email beim Starten des Programms direkt verschickt wird, allerdings soll sich nur das Fenster "Neue Email" öffnen mit Betreff etc schon ausgefüllt, sodass ich dann selbst noch auf "Senden" klicken muss. Kenne mich mit dieser Materie (ActiveXComponents etc.) leider noch nicht aus und hab schon etliches gegoogelt, aber nichts gefunden...

Java:
public static void main(String[] args)
  {
    ActiveXComponent outlook = new ActiveXComponent("Outlook.Application");

    Dispatch mail = Dispatch.invoke(outlook.getObject(), "CreateItem", Dispatch.Get,
            new Object[]
            {
              "0"
            }, new int[0]).toDispatch();
    Dispatch.put(mail, "To", "test@test.com");

    Dispatch.put(mail, "Subject", "Test");

    String body = "Test";

    Dispatch.put(mail, "Body", body);

    Dispatch.put(mail, "ReadReceiptRequested", "false");

    Dispatch attachs = Dispatch.get(mail, "Attachments").toDispatch();

    Dispatch.call(attachs, "Add", "Test.txt", 4);

    Dispatch.call(mail, "Send");
  }

Gruß
Luk
 
K

kneitzel

Gast
Super, dass Du es gelöst hast. Aber diese ActiveX Komponente ist aber nach meinem Verständnis nicht die MAPI Schnittstelle sondern der direkte Zugriff auf die Applikation, den ich meinte. Wobei ActiveX mich da etwas verwirrt. Aber das sollte genau das sein, was ich schon meinte (Und super, dass es so einfach funktioniert. Ich hatte Angst, dass man da groß mit JNI anfangen müsste. Daher danke für das Teilen der Lösung!)

MAPI ist eine allgemeine Schnittstelle, die von jedem Mail-Programm unterstützt werden könnte. Hat den großen Vorteil, dass der Anwender ein beliebiges Mail-Programm installiert haben kann.

Aber die Anforderungen des Chefs sind erfüllt und dass es nicht MAPI ist wie gefordert kann man unter den Tisch fallen lassen - so das Produkt nicht damit beworben werden soll. Denn dann könnte es Probleme geben, wenn jemand eben nicht outlook verwendet.

Viele Grüße,

Konrad
 

KaffeeFan

Bekanntes Mitglied
dass es nicht MAPI ist wie gefordert
Wie meinst du das? Das läuft doch über JACOB und somit alles über MAPI, oder nicht? :confused:
Jetzt hat sich allerdings noch das Problem aufgetan, dass ich mit dem Code nur Outlook anspreche.
Es soll aber das Standard-MAPI-Mailprogramm geöffnet werden, dass ich also nicht direkt Outlook ansprechen muss, sondern er mir automatisch den MAPI-Standard übergibt.
Hast du oder hat jemand da eine Idee?

Gruß
Luk
 
K

kneitzel

Gast
Du nutzt nicht Mapi sondern das Outlook COM Objekt. JACOB dient nun einmal dem Zugriff auf COM Objekte. JACOB kann wohl auch genutzt werden, wenn Du statt dem Outlook COM Objekt ein MAPI COM Objekt verwendest.

Aber ein gutes Beispiel habe ich nicht gefunden. In der FAQ sind ein paar Hinweise, dass erst eine Initialisierung erfolgen muss (MTA vs. STA - http://stackoverflow.com/questions/127188/could-you-explain-sta-and-mta), aber ein Beispiel konnte ich jetzt nicht finden. Die Dokumentation auf msdn diesbezüglich war bisher auch nicht hilfreich.

Was ich gefunden habe, ist https://msdn.microsoft.com/en-us/library/cc842378.aspx. Aber ich sehe da so auf Anhieb nichts bezüglich COM Objekte was sich einfach in Java umsetzen liesse.

Daher würde ich an Deiner Stelle erst einmal https://github.com/briandealwis/jmapi ansehen, ob das weiter helfen könnte (bzw. https://java.net/projects/jdic) - ist aber alles recht alt (5 bzw. über 6 Jahre) was nicht gerade sehr zuversichtlich macht.

Konrad
 

KaffeeFan

Bekanntes Mitglied
Okay, nochmals vielen lieben Dank für deine Bemühungen!
Ich werde mich dann mal weiter schlaulesen, mich mit deinen Links auseinandersetzen und mir eventuell einen Arbeitskollegen zur Seite holen!
Melde mich bestimmt später oder morgen nochmal, falls es was neues gibt.

Gruß
Luk
 

PimpEE

Mitglied
Hallo zusammen,

dieser Beitrag ist schon ein paar Jahre alt, aber ich bin genau an der selben Stelle wie KaffeeFan damals :D.

Ich schaffe es nicht via JACOB auf MAPI zuzugreifen, länglich auf Outlook. Hat jemand eine Idee oder schon mal versucht mit JACOB und ActiveX auf MAPI zu zugreifen? Ich hab genau die selben vorgaben wie KaffeeFan!

Bin für jede Antwort dankbar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Automatische Emails versenden mit Java? Allgemeine Java-Themen 5
B Java Mail: Prüfung auf neue Emails Allgemeine Java-Themen 1
B Java Mail: Emails sortieren? Allgemeine Java-Themen 5
H Java und Emails Allgemeine Java-Themen 8
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
G emails per Java empfangen Allgemeine Java-Themen 3
J Externe File Emails für JavaMail Allgemeine Java-Themen 4
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
R Compiler-Fehler Bild per E-Mail versenden Allgemeine Java-Themen 3
T Automatisch Mails versenden Allgemeine Java-Themen 4
X Mail versenden mit java.mail Allgemeine Java-Themen 14
T Email versenden Allgemeine Java-Themen 1
P "Email" versenden mit Anhang Allgemeine Java-Themen 5
P MimeMessage SMS versenden Allgemeine Java-Themen 0
C SMS versenden Allgemeine Java-Themen 7
A Email versenden mehrere Zeilen Allgemeine Java-Themen 10
B Per BatchScript Mail versenden Allgemeine Java-Themen 27
foobar Email mit Standard Mailclient versenden Allgemeine Java-Themen 12
C .hex Datei über RS232 versenden Allgemeine Java-Themen 3
G E-Mail versenden Allgemeine Java-Themen 6
D Email an mehrer Absender versenden Allgemeine Java-Themen 3
G E-Mails versenden Allgemeine Java-Themen 12
D Mit Java Daten aus Access holen und als VCard versenden Allgemeine Java-Themen 3
B Image(png) versenden Allgemeine Java-Themen 3
T ObjectOutputStream => Socket versenden Allgemeine Java-Themen 2
K Email mit Anhang über mailto:. versenden Allgemeine Java-Themen 11
P Streams per Mail mit JavaMailAPI versenden Allgemeine Java-Themen 3
S java mail API, email versenden Allgemeine Java-Themen 8
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben