Oder so (ohne
INDY):
Delphi-Quellcode:
Function UrlEncode (Const s : String) : String;
Var
i : Integer;
Begin
Result := '';
For i:=1 To length (s) do
If ord (s[i]) in [33..127] then
Result := Result+s[i]
Else
Result := Result+'%'+IntToHex (Ord(s[i]),2);
End;
Procedure SendMailViaStandardEMailClient (aRecipients, aSubject, aBody, aAttachment);
Var
aMailCmd : String;
Begin
aMailCmd := 'mailto:'+aRecipients + '?subject='+aSubject;
if aBody <>'' Then
aMailCmd := aMailCmd + '&body='+aBody;
If aAttachments <>'' Then
aMailCmd := aMailCmd + '&attach="' + aAttachment +'"';
aMailCmd := UrlEncode (aMailCmd);
ShellExecute (Application.Handle,'OPEN', PChar (aMailCmd), nil, nil, SW_SHOWDEFAULT);
End;
Vorteil:
INDY wird nicht benötigt.
Nachteil: Klappt nicht mit allen email clients. Lotus z.B. öffnet nur den Dialog zum Verfassen einer mail.
Alternativ zu
Indy kann man auch die ICS Kompoenten von Francois Piette (
www.overbyte.de) nehmen. Die sind Freeware, mit Source und seit Jahren weltweit im Einsatz (also stabil).