Hallo Leute,
ich habe in diesem Thema (http://www.tutorials.de/forum/java/206568-outlook-steuern-mit-java-2.html) gelesen, wie man prinzipiell auf Outlookdaten zugreifen kann. Dabei habe ich mich entschieden, mit dem JACOB-Tool zu arbeiten und habe folgenden Sourcecode heruntergeladen und getestet:
Allerdings wirft der Code eine Exception:
Exception in thread "main" com.jacob.com.ComFailException: Can't map name to dispid: firstname
Dabei wird zuersten eine gewisse Anzahl Kontakte korrekt ausgegeben. Aber jedes Mal, wenn er auf eine Verteilerliste stößt (die sich ja auch im Kontakt-Ordner befindet), kommt dieser Fehler.
Weiß jemand eine Möglichkeit, um abzufragen, ob das Item in den Kontakten einen Kontakt oder eine Verteilerliste darstellt?
ich habe in diesem Thema (http://www.tutorials.de/forum/java/206568-outlook-steuern-mit-java-2.html) gelesen, wie man prinzipiell auf Outlookdaten zugreifen kann. Dabei habe ich mich entschieden, mit dem JACOB-Tool zu arbeiten und habe folgenden Sourcecode heruntergeladen und getestet:
Java:
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( ";" );
}
}
Allerdings wirft der Code eine Exception:
Exception in thread "main" com.jacob.com.ComFailException: Can't map name to dispid: firstname
Dabei wird zuersten eine gewisse Anzahl Kontakte korrekt ausgegeben. Aber jedes Mal, wenn er auf eine Verteilerliste stößt (die sich ja auch im Kontakt-Ordner befindet), kommt dieser Fehler.
Weiß jemand eine Möglichkeit, um abzufragen, ob das Item in den Kontakten einen Kontakt oder eine Verteilerliste darstellt?