|
Tutoriaux
- Turbo Power Internet Professionnal - Envoyer un email |
Cette exemple permet
d'envoyer un email avec si vous le souhaitez un fichier attaché.
Pour réaliser cela, on utilise le composant TIpSMTPClient de
Turbo Power Internet Professionlal.
Création
de la partie visuelle du programme |
Pour commencer, ajoutez dans
votre fiche (form), trois composants TGroupBox, quatre composants TEdit,
quatre composants TLabel, trois composants TButton et un TOpenDialog.
Disposez ses composants comme ci-dessous.
Ensuite, ajoutez
un composant TIpSMPTClient de l'onglet "iPRO" de la palette
de composants de Delphi.
Le composant TIpSMTP permet d'envoyer des emails sur un serveur mail
en utilisant le protocole SMTP (Simple Mail Transfer Protocol). Puis,
modifiez la propriété "Caption" de la form en
mettant "Envoyer un email avec TIpSMTPClient. Modifiez également
la propriété "Caption" des trois composants
TGroupBox ainsi que des trois composants TButton comme ci-dessus.
La partie visuelle du programme est maintenant terminé. On passe
maintenant à la partie code du programme.
Remplir
les différents paramètres de l'email |
Pour envoyer un email,
il faut spécifier le destinataire, l'expediteur, le sujet (appelé
également l'objet) et le corp du message. Tout ceci correspond
à un email. On peut aussi rajouter quelques options comme par
exemple la date à laquelle on expédie le message.
IpSmtpClient1.Message.From
:=Edit1.Text; //Adresse email de l'expediteur
IpSmtpClient1.Message.MailTo.Add(Edit2.Text); //Adresse
email du destinataire
IpSmtpClient1.Message.Date:=DateToStr(Date); //Date
de l'envoi du message
IpSmtpClient1.Message.Subject:=Edit4.Text; //Sujet
du message
IpSmtpClient1.Message.EncodeBodyStrings(Memo1.Lines,'');
//Corps du message |
|
Pour, on utilise un composant
TOpenDialog. Le chemin du fichier est alors afficher dan un composant
TEdit.
procedure
TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit3.Text:=OpenDialog1.FileName; //Edit
affiche le fichier choisit
end; |
|
Le programme est conçu
à pouvoir attacher un fichier ou non. Il faut donc vérifier
qu'il y a quelque chose dans le composant TEdit avant d'attacher le
fichier par la méthode "AttachementList".
if
not (Edit3.Text='') then
IpSmtpClient1.AttachmentList.Add(Edit3.Text); //Attache
le fichier |
|
Pour envoyer un email, nous utilisons deux variables ainsi qu'une procédure.
private
{ Déclarations privées
}
FTask,FError:Boolean; //La variable
"FTask" permet de vérifier si l'email a
été envoyé
procedure Wait;
end; |
|
L'email est envoyé
grâce à la méthode "SendMail". On doit
spécifier l'adresse de l'hôte ainsi qu'un paramètre
de type "Boolean" (True ou False). "False" permet
de se déconnecter après l'envoit du message et "True"
permet de rester connecter (il suffit ensuite d'utiliser "Quit"
pour se déconnecter).
IpSmtpClient1.SendMail('xxxx',False);
//Envoi du message à l'hôte
(par exemple pour Free : smtp.free.fr)
//"False" permet de se déconnecter
du serveur après l'envoit de l'email
Wait; //Appel la procedure "Wait"
if FError=True then ShowMessage('L''email
n''a pas été envoyé.'); //Affiche
un message si il y a eu une erreur |
|
Lorsque l'on evoie
l'email, il faut attendre que la tâche a été effectuée.
C'est le rôle de la procédure "Wait". Ensuite,
si il y a eu une erreur (on détecte cela grâce à
lévénement "OnError" cu composant TIpSMPTClient),
on affiche un message informant l'utilisateur de cette erreur.
Pour attendre, on effectue une boucle. Lorsque la variable "FTask"
ou "FError" est à "True" alors la boucle
s'arrête. "Task" est à "True" lorsque
l'événement "OnTaskComplete" du composant "TIpPOP3Client"
se déclenche lorsque l'email a été envoyé.
procedure
TForm1.IpSmtpClient1TaskComplete(Client: TIpCustomSmtpClient;
Task: TIpSmtpTasks);
begin
if Task = stSendMail then
FTask:=True; //Indique que l'email
a été envoyé
end;
procedure TForm1.IpSmtpClient1Error(Sender: TObject;
Socket: Cardinal; ErrCode: Integer; const
ErrStr: String);
begin
//L'événement "OnError"
se déclenche quand une erreur est détecté
FError:=True; //Indique qu'une erreur
s'est produite
end;
procedure TForm1.Wait;
begin
FTask:=False; //Initialise la variable
"FTask" à False ("FTask permet d'indiquer
lorsque l'email e été envoyé")
FError:=False; //Initialise la variable
"FError" à False ("FError" permet
d'indiquer si il y a une erreur)
repeat //Répéter...
Sleep(100); //Attend 100ms
Application.ProcessMessages; //Interrompt
l'exécution du programme pour que Windows puisse
traiter la file d'attente des messages des autres sources
until FError or FTask; //...jusqu'à
ce qu'il y est une erreur ou que la tâche soit terminé
end; |
|
Envoyer
un email |
[ 13-08-2003 ] |
Envoie
un email avec le composant TIpSMTPClient de TurboPower
Internet Professionnal.
Télécharger : [8
Ko] [
tipsmptclient.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|