NOTE :
Cet article est uniquement destiné aux programmeurs Delphi …
{BlueGYN 2017}
Le deal c’est d’envoyer un texte complet par e mail sans installer aucun truc imbitable.
En une seule ligne de code il n’y a guère que le protocole MAILTO: comme paramètre de l’instruction ShellExecute.
Protocole | MAILTO: |
Le sujet s’écrit | ?SUBJECT= |
Le contenu | &BODY= |
Uses ShellApi
ShellExecute(0,'OPEN', 'MAILTO:bluegun@gmail.com' + '?SUBJECT=Mon Sujet'+ '&BODY=Mon Contenu', nil, nil, sw_show);
- Ou ça coince c’est que ça ne marche que pour un contenu à une seule ligne (pas pour tout un texte)
- Le saut de ligne Pascal ne marche pas (CRLF = ^m+^j) toutes les lignes sont à la queue leu leu
- Et le BackRow HTML encore moins ( <BR> )
SOLUTION SIMPLISSIME :
Il suffit de mettre autant de &BODY= que de lignes de texte
En pratique :
- On se contente de remplacer automatiquement tous les sauts de lignes par des BODY
replacestr(RichEdit.Text, ^m+^j , '&BODY=')
const CRLF = ^m+^j; shellexecute(0, 'OPEN', pchar('MAILTO:?FROM=bluegyn@gmail.com&SUBJECT=' + Combo_TITRE.Text + '&BODY=' + replacestr(RTF.Text, CRLF, '&BODY=')), nil, nil, SW_SHOWNORMAL);
Mise en pratique :
- Voir programme PrintyCS