Inviare E-Mail con ShellExecute
Creare una mail ed inviarla tramite il proprio client di posta diventa semplicissimo nel momento in cui usiamo la funzione API ShellExecute. Il più grosso vantaggio evidente di questa tecnica è il non dover occuparsi direttamente dell’invio in quanto la API aprirà direttamente la mail creata nel client di posta predefinito. Gli svantaggi potrebbero essere il non poter allegare documenti, non poter mettere immagini nel testo se non caricate tramite un link html, l’invio non è automatico ma bisogna dare al client di posta la conferma all’invio.
uses ShellApi;
…
procedure TForm1.sendClick(Sender: TObject);
var
pch:Pchar;
begin
pch:=pchar(’mailto:’+toemail.Text+’?subject=’+subject.Text+’&body=’+body.Text);
ShellExecute(0, ‘open’,pch, nil, nil, SW_SHOWNORMAL);
end;
Con MS-Outlook è anche possibile inserire degli allegati, la stringa in questo caso diventa:
mailto:info@microsoft.com?Subject=subject_Text&Body=body_Text&&Attach=”c:\Delphi_Mail_Attachments\attachment.txt”
Se il client di posta non si dovesse aprire (esempio: Windows Vista con Windows Mail) è necessario entrare in pannello di controllo fare l’associazione.
Pannello di controllo->Programmi predefiniti->Associa un tipo di file a un programma->Associare MAILTO a Windows Mail
Potete scaricare i sorgenti e l’eseguibile di esempio da qui: Send_Email_API
Compatibile con:
- Windows XP: SI
- Windows VISTA: SI