rongricker
Grünschnabel
Hallo,
ich habe ein dringendes Problem:
Über meine Java-Applikation (mithilfe von SWT) sollen in Outlook Aufgaben erstellt UND versendet werden! Das erstellen und speichern der Aufgaben funktioniert, aber leider schaffe ich es nicht diese auch zu versenden :-( Alle Properties werden erfolgreich gespeichert, aber wenn ich mir die aus Java generierte Aufgabe in meinem Outlook Postfach anschaue, ist das "An:" -Feld immer leer und die Aufgabe wird nicht versendet.... Das Versenden einfacher Mails klappt übrigens.
Das Problem muss irgendwie beim setzen des Recipients-Properties liegen... im Beispiel unten versuche ich es mit einem Variant-Array... in anderen Versuchen mit einem einfachen Variant-Objekt funktionierte es auch nicht.
hier der Code:
hier die Office Outlook 2003 VBA Language Reference zum TaskItem Objekt:
http://msdn.microsoft.com/en-us/library/aa211067(office.11).aspx
ich nutze zwar Outlook 2000 aber das sollte nicht das Problem sein....
Ich bin für jeden Hinweis der mir irgendwie weiterhelfen könnte überaus dankbar.. ich verzweifle jetzt schon seit 2 Tagen an dem Problem :-(
ich habe ein dringendes Problem:
Über meine Java-Applikation (mithilfe von SWT) sollen in Outlook Aufgaben erstellt UND versendet werden! Das erstellen und speichern der Aufgaben funktioniert, aber leider schaffe ich es nicht diese auch zu versenden :-( Alle Properties werden erfolgreich gespeichert, aber wenn ich mir die aus Java generierte Aufgabe in meinem Outlook Postfach anschaue, ist das "An:" -Feld immer leer und die Aufgabe wird nicht versendet.... Das Versenden einfacher Mails klappt übrigens.
Das Problem muss irgendwie beim setzen des Recipients-Properties liegen... im Beispiel unten versuche ich es mit einem Variant-Array... in anderen Versuchen mit einem einfachen Variant-Objekt funktionierte es auch nicht.
hier der Code:
Code:
public void swtTest() {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText( "Outlook Automation" );
shell.setLayout( new FillLayout() );
OleFrame frm = new OleFrame( shell, SWT.NONE );
OleClientSite site = new OleClientSite( frm, SWT.NONE, "Outlook.Application" );
OleAutomation auto = new OleAutomation( site );
int[] GetNamespaceDispId = auto.getIDsOfNames( new String[] { "GetNamespace" } );
Variant Namespace = auto.invoke(GetNamespaceDispId[0], new Variant[] { new Variant( "MAPI" ) } );
OleAutomation NamespaceAutomation = Namespace.getAutomation();
int[] LogonDispId = NamespaceAutomation.getIDsOfNames( new String[] { "Logon" } );
NamespaceAutomation.invoke(LogonDispId[0], new Variant[] { new Variant( "XXX@XXX.de" ),
new Variant( "XXX" ),
new Variant( true ),
new Variant( true ) });
int[] createItemDispId = auto.getIDsOfNames( new String[] { "CreateItem" } );
Variant task = auto.invoke( createItemDispId[0], new Variant[] { new Variant( JConstant.OUTLOOK_TASK_ITEM ) } );
OleAutomation taskAutomation = task.getAutomation();
int[] delegatorPropertyDispId = taskAutomation.getIDsOfNames( new String[] { "Delegator" } );
taskAutomation.setProperty( delegatorPropertyDispId[0], new Variant( "absender@test.de" ) );
int[] subjectPropertyDispId = taskAutomation.getIDsOfNames( new String[] { "Subject" } );
taskAutomation.setProperty( subjectPropertyDispId[0], new Variant( "Dies ist der Betreff" ) );
int[] BodyPropertyDispId = taskAutomation.getIDsOfNames( new String[] { "Body" } );
taskAutomation.setProperty( BodyPropertyDispId[0], new Variant( "Hier steht der Inhalt der Aufgabe...") );
int[] assignDispId = taskAutomation.getIDsOfNames( new String[] { "Assign" } );
taskAutomation.invoke( assignDispId[0] );
int[] recipientsPropertyDispId = taskAutomation.getIDsOfNames( new String[] { "Recipients" } );
taskAutomation.setProperty( recipientsPropertyDispId[0], new Variant[]{ new Variant( "empfaenger@test.de" ) } );
int[] saveDispId = taskAutomation.getIDsOfNames( new String[] { "Save" } );
taskAutomation.invoke( saveDispId[0] );
int[] sendDispId = taskAutomation.getIDsOfNames( new String[] { "Send" } );
taskAutomation.invoke( sendDispId[0] );
int[] LogoffDispId = NamespaceAutomation.getIDsOfNames( new String[] { "Logoff" } );
NamespaceAutomation.invoke( LogoffDispId[0] );
shell.dispose();
auto.dispose();
NamespaceAutomation.dispose();
taskAutomation.dispose();
site.deactivateInPlaceClient();
site.dispose();
frm.dispose();
}
hier die Office Outlook 2003 VBA Language Reference zum TaskItem Objekt:
http://msdn.microsoft.com/en-us/library/aa211067(office.11).aspx
ich nutze zwar Outlook 2000 aber das sollte nicht das Problem sein....
Ich bin für jeden Hinweis der mir irgendwie weiterhelfen könnte überaus dankbar.. ich verzweifle jetzt schon seit 2 Tagen an dem Problem :-(