Outlook steuern mit Java

Hallo, ich habe mir auch schon ein kl. programm gebaut um kontakte aus dem outlook zu lesen. ich möchte mein prog. aber noch abändern, das ich auch kontakte vom öffentlichen ordner lesen kann. ich finde dazu aber leider keine doku im netz wo ich da zugreifen muss/darf.

Code:
import java.io.*; 
import com.jacob.activeX.*;
import com.jacob.com.*;

public class Uebung01 {
public static void main(String[] args) throws IOException {
final int olFolderContacts = 10;


//output logfilename mit path
String file = "c:\\temp\\logfile.txt";
BufferedWriter out = new BufferedWriter(
	  new OutputStreamWriter(
		new FileOutputStream( file ) ) );

ActiveXComponent ol = new ActiveXComponent("Outlook.Application");
Dispatch dsp = new Dispatch();

Object olo = ol.getObject();
Object myNamespace = Dispatch.call(olo, "GetNamespace", "MAPI").toDispatch();
Object myFolder = Dispatch.call(myNamespace, "GetDefaultFolder", new Integer(olFolderContacts)).toDispatch();

Object items = Dispatch.get(myFolder, "Items").toDispatch();

int count = Dispatch.call(items, "Count").toInt();

for (int i = 1; i <= count; i++) {
Object item;
item = Dispatch.call(items, "Item", new Integer(i)).toDispatch();

String firstname = Dispatch.get(item, "firstname").toString();
String lastname = Dispatch.get(item, "lastname").toString();
String fullName = Dispatch.get(item, "Fullname").toString();
String emailAddress = Dispatch.get(item, "Email1Address").toString();
String addressStreet = Dispatch.get(item, "BusinessAddressStreet").toString();
String addressCity = Dispatch.get(item, "BusinessAddressCity").toString();
String addressCountry = Dispatch.get(item, "BusinessAddressCountry").toString();
String addressPostalCode = Dispatch.get(item, "BusinessAddressPostalCode").toString();
String addressState = Dispatch.get(item, "BusinessAddressState").toString();
String title = Dispatch.get(item, "Title").toString();
String phone = Dispatch.get(item, "BusinessTelephoneNumber").toString();
String fax = Dispatch.get(item, "BusinessFaxNumber").toString();
String privat = Dispatch.get(item, "HomeTelephoneNumber").toString();
String mobil = Dispatch.get(item, "MobileTelephoneNumber").toString();
String webpage = Dispatch.get(item, "Webpage").toString();

	logData( firstname, out );
	logData( lastname, out );
	logData( addressStreet, out );
	logData( addressCity, out );
	logData( addressState, out );
	logData( addressPostalCode, out );
	logData( addressCountry, out );
	logData( phone, out );
	logData( fax, out );
	logData( privat, out );
	logData( mobil, out );
	logData( emailAddress, out );
	logData( webpage, out );
	out.newLine();
	
}										
out.close();

}										


public static void logData(String value, BufferedWriter out ) throws IOException {
		out.write( value );
		out.write( ";" );
									}										
}

hat da jemand eine idee?

und bei mir meldet sich immer outlook ob ich zulassen will das jemand auf das programm zugreift. kann man das abstellen?
---- schon eine lsg gefunden ----
http://www.gangl.de/downloads/OLXSecuritySetup.exe
das ist ein freeware tool das diese meldungen abstellt. die frage ist nur wie sieht es mit dem sicherheitsdenken aus, weil diese sicherheitsmeldungen von outlook ja nicht ohne hintergedanken eingebaut sind. wenn ein DAU user vor dem rechner sitzt dann ist es egal, weil der klickt ja sowieso auf JA.

habe auch noch diese tool gefunden.
http://www.contextmagic.com/express-clickyes/
aber ich denke das funktioniert nur mit englisch sprachigen outlooks und somit nichts für mich.

hat vielleicht noch jemand eine bessere idee diese meldungen nur für diesen einen fall abstellen, d.h. mein java programm zu registrieren sodas outlook merkt das es friendly ist.


lg

rohstoff77


Du mußt deinen Gegner in einen Wald führen wo 2+2=5 ist und wo der Weg raus nur breit genug für einen ist. by Michael Tal
 
Zuletzt bearbeitet:
Thomas Darimont hat gesagt.:
Folgendes funktioniert mittels SWT, OLE und Outlook 2000:
(Vielleicht kann ja jemand das mal mit anderen Outlookversionen Testen) ;-)

Läuft auch unter Outlook 2003/Win2K ABER unter WinXP Outlook2003 wird eine Exception
Code:
Exception in thread "main" org.eclipse.swt.SWTException: Failed to create Ole Client. result = -2147467262
	at org.eclipse.swt.ole.win32.OLE.error(OLE.java:302)
	at org.eclipse.swt.ole.win32.OleClientSite.<init>(OleClientSite.java:241)
	at OutlookMail.OutlookMail.main(OutlookMail.java:36)
geworfen, dieses passiert genau dann wenn man debugt und bei der Zeile ankommt
Code:
 		OleClientSite site = new OleClientSite(frm, SWT.NONE,
 				"Outlook.Application");

Hat da wer ne Idee? Ich will auch unter XP nutzen :(

Gruß
Basti
 
Hi Tom,

also ich glaube da liegt das Problem, denn auch bei dem Beispiel bekomme ich gleiche Fehlermeldung! Ich werde das nachher nochmal auf dem Arbeitslaptop ausprobieren, aber ich denke daran wird es liegen.
Ich habe die Visual Studio Tools net, gibt es für mich eine andere Möglichkeit zu schaun ob das darunter registriert ist? Bzw. wie kann ich es anstellen, dass es sich registriert :confused:

Danke und Gruß
Basti
 
Hallo zusammen

Ich bin am gleichen problem und habe das mal mit Eclipse getestet, kam aber folgende Fehlermeldung, obwohl ich die Library in den Pfad eingebettet habe...

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:125)
at outlook.main(outlook.java:23)

Kann mir jemand helfen?
 
Gibts auch fixfertige Applikationen um auch auf z.B Kalender oder Aufgeben zugreiffen zu könne und zu bearbeiten.....ev. auch auf mails?

Gruss Thomas
 
Hi,

ich wüsste gerne, wie man eine E-Mail erstellt, die eine Umfrage enthält bzw, die auf eine Umfrage antwortet.

Damit meine ich Abstimmungs-Buttons, wie "Genehmigt", "Abgelehnt" usw.
(unter Outlook2003->neue Mail->Optionen->Abstimmungsschaltflächen...)

Vielen Dank!
 
Zurück