Autor Beitrag
MitschL
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 211

Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
BeitragVerfasst: Di 03.05.05 11:13 
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
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
//...
empfaenger: TMapiRecipDesc;
nachricht: TMapiMessage;
begin
  // die Elemente der nachricht erstellen und danach eintragen
  // Den folgenden Bereich möchte ich gern so erstellen, daß 
  // empfaenger auf eine Liste zeigt
  nachricht.nRecipCount        := 1;
  nachricht.lpRecips           := @empfaenger;
  //...
  if MapiSendMail(00, nachricht, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0then
  //...
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:
ausblenden 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] );
  //...
  // Hier wieder das Nachrichten-Record
  nachricht.nRecipCount        := empfaengeranzahl;
  nachricht.lpRecips           := @empfaenger^;
//...
end;

_________________
"Bloßes Ignorieren ist noch keine Toleranz." (Theodor Fontane)