Moin,
das Ganze ist für mich ungewohnt, weil die Arbeit mit der MAPI aufgrund ihrer Herkunft einem anderen Weltbild folgt.
In einem ersten Schritt habe ich also herausgefunden, wie ich eine Mail automatisiert vesenden kann, wie ich ihr ein Attachment mitgebe und auch vom Standard-Absender abweichen kann bzw. gerade diesen nutze.
Wie kann ich nun eine Empfänger-Liste erstellen? Als Array scheint es mir nicht möglich oder ich nutze es nur falsch, also muß ich diese Liste anders anlegen.
Ich habe also
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| empfaenger: TMapiRecipDesc; nachricht: TMapiMessage; begin nachricht.nRecipCount := 1; nachricht.lpRecips := @empfaenger; if MapiSendMail(0, 0, nachricht, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) then end; |
ich stehe irgendwie total auf dem Schlauch, wie ich mir jetzt daraus eine Liste erstellen soll und bin deshalb für jede Hilfe dankbar.
gegrüßt!
[edit] Also: Ich habe nun mit auf Pointer ge-type-ten Arrays gearbeitet und diese mit getmem() instanziiert. Das Dumme war nun, daß nur das erste Element dieser Liste benutzt wurde, und obwohl die Elemente ihre korrekten Daten enthielten (so der Debugger), wurde das erste Element so oft verschickt, wie insgesamt Einträge in der Liste waren.
Das Ganze sieht nun etwa so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| type TEmpfaengerListe = array of TMapiRecipDesc; TEmpfaengerZeiger = ^EmpfaengerListe; var empfaengerzeiger: TEmpfaengerZeiger; begin getmem( empfaengerzeiger, SizeOf( TMapiRecipDesc )* empfaengeranzahl ); for i := 0 to empfaengeranzahl-1 do if i = 0 then empfaengerzeiger.ulRecipClass := MAPI_TO else empfaengerzeiger.ulRecipClass := MAPI_BCC; empfaengerzeiger.lpszName := PChar( EmpfaengerAdressen[i] ); empfaengerzeiger.lpszAddress := PChar( EmpfaengerAdressen[i] ); nachricht.nRecipCount := empfaengeranzahl; nachricht.lpRecips := @empfaenger^; end; |