Hallo René,
na klar kannst du deine Empfänger auch als Feldliste in einem String an deine SendMail-Funktion übergeben. Du musst sie dann aber zerlegen und für jeden einzelnen eine MapiRecipDesc-Struktur ausfüllen. In deinem Code darfst du dann aber nicht lpszName und lpszAddress mit dem gleichen Wert beschicken. Ist es ein DisplayName, dann weise ihn nur lpszName zu und
MAPI-intern wird die Mail-Adresse ermittelt. Sobald du lpszAddress etwas zuweist gibt es keinen Automatismus mehr und die zugewiesene Adresse wird für den Versand benutzt.
Für die einfache Zerlegung deiner Empfänger-Feldliste kannst du vielleicht diesen Code brauchen:
Delphi-Quellcode:
function ParseStr(var s: string; delimiters: string; purge: boolean): string;
var
i: integer;
begin
i := 0;
while (i < Length(s)) and (Pos(s[Succ(i)], delimiters) = 0) do
Inc(i);
Result := Copy(s, 1, i);
Delete(s, 1, i + Ord(purge));
end;
procedure UsageDemo;
var
sReceipients: String;
begin
sRecipients := 'John Doe;Lisa Doe;Brother Tuck';
while sReceipients <> '' do
ShowMessage(ParseStr(sReceipients, ';', true));
end;
Grüße vom marabu