Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - Indy - Envoyer un email

Présentation

Cette exemple permet d'envoyer un email avec si vous le souhaitez un fichier attaché. Pour réaliser cela, on utilise le composant TIdSMTP.


Création de la partie visuelle du programme

Pour commencer, ajoutez dans votre 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 TIdSMTP de l'onglet "Indy Clients" de la palette de composants de Delphi et un composant TIdMessage de l'onglet "Indy Misc".
Le composant TIdSMTP permet d'envoyer des emails sur un serveur mail en utilisant le protocole SMTP (Simple Mail Transfer Protocol) et le composant TIdMessage encapsule les messages Internet.

Puis, modifiez la propriété "Caption" de la form en mettant "Envoyer un email avec TIdSMTP. 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 ou encore la priorité du message.

IdMessage1.Clear; //Efface l'entête et le corps du message
IdMessage1.From.Text :=Edit1.Text; //Adresse email de l'expediteur
IdMessage1.ReplyTo.EMailAddresses:=Edit1.Text; //Adresse email où le destinataire pourra répondre
IdMessage1.Recipients.EMailAddresses:=Edit2.Text; //Adresse email du destinataire
IdMessage1.Date:=Date; //Date de l'envoi du message
IdMessage1.Subject:=Edit4.Text; //Sujet du message
IdMessage1.Priority:=mpNormal; //Priorité du message
IdMessage1.Body.Assign(Memo1.Lines); //Corps du message


Attacher un fichier

Pour choisir le fichier que l'on veut attacher, on utilise un composant TOpenDialog.

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit3.Text:=OpenDialog1.FileName; //Edit3 affiche le fichier choisit
end;

Le programme va attacher un fichier au message si il y a du texte dans le "Edit3".

if not (Edit3.Text='') then TIdAttachment.Create(IdMessage1.MessageParts,Edit3.Text); //Attache le fichier


Envoie de l'email

Pour terminer, on se connecte au serveur SMTP grâce au composant TIdSMTP et on envoi grâce à la méthode "Send" le message. On pourrais également envoyer un email de façon anonyme, c'est à dire sans spécifier le nom d'utilisateur et le mot de passe. Pour cela, il faudrait changer le type d'authentification par "atNone".

//Connexion au serveur smtp
IdSMTP1.AuthenticationType:=atLogin; //Type d'authentification
IdSMTP1.Host:='xxxx'; //Hôte (par exemple pour Free : smtp.free.fr)
IdSMTP1.Port:=25; //Port (par exemple pour Free : 25)
IdSMTP1.UserName:='xxxx'; //Nom d'utilisateur
IdSMTP1.Password:='xxxx'; //Mot de passe
IdSMTP1.Connect; //Connexion
try
IdSMTP1.Send(IdMessage1); //Envoi du message
finally
IdSMTP1.Disconnect; //Déconnexion
end;

Envoyer un email    [ 03-08-2003 ]
 Envoie un email avec le composant TIdSMTP de Indy.
Télécharger :  [7 Ko] [Télécharger tidsmpt.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/

Tous droits réservés - Contacts
Haut de la page