FAQ DelphiConsultez toutes les FAQ
Nombre d'auteurs : 124, nombre de questions : 934, dernière mise à jour : 23 octobre 2024 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).
Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.
L'équipe Delphi de Developpez.com.
Beaucoup de prestataires de services Internet proposent aujourd'hui de se connecter à leurs serveurs de mail grâce au protocole POP3.
Il est possible avec Delphi d'utiliser ce protocole pour lister, par exemple, les messages présents dans une boîte aux lettres électronique.
Voici un exemple avec le composant TPop3Cli de la suite ICS.
À la différence de certains composants comme ceux de la suite Indy, le composant TPop3Cli est asynchrone et fonctionne donc par événements plutôt que "linéairement". La méthode d'approche n'est donc pas la même.
Pour vous connecter à votre serveur, vous aurez besoin de cinq informations :
- Le serveur POP3 auquel se connecter
- Le port auquel s'y connecter. En règle générale c'est le port 110
- Le nom d'utilisateur à utiliser pour la connexion
- Le mot de passe associé à ce nom d'utilisateur
- La méthode d'authentification à employer
Après avoir renseigné le composant avec ces informations, il faut appeler la méthode Open qui effectue la connexion au serveur. À noter que le port à renseigner ici n'est pas la valeur 110, mais la chaîne 'pop3'.
Voici le code de connexion :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | procedure TForm1.btnVerifClick(Sender: TObject); begin lstMsgs.Clear; lblMsg.Caption := '-'; // Mise à jour des données de connexion POP3.Host := edServeur.Text; POP3.Port := edPort.Text; POP3.Username := edUser.Text; // On spécifie le mode d'authentification suivant que le mot de passe est activé ou non If cbxPass.Checked then begin POP3.AuthType := popAuthLogin; POP3.Password := edPass.Text end else begin POP3.AuthType := popAuthNone; POP3.Password := ''; end; try // Demande de la connexion. Open permet d'effectuer le processus de connexion (connect, user, pass) automatiquement POP3.Open; except on e: exception do ShowMessage(e.Message); end; end; |
C'est grâce à cet événement que nous allons récupérer les informations des messages.
Voyons déjà un code fonctionnel :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | procedure TForm1.POP3RequestDone(Sender: TObject; RqType: TPop3Request; Error: Word); begin // Ici, on agit en fonction de la requête qui vient de se TERMINER Case RqType of pop3Open : // Une fois la connexion établie on appelle Stat, qui permet de récupérer le nombre de messages POP3.Stat; pop3Stat : begin // On affiche le nombre de messages lblMsg.Caption := IntToStr(POP3.MsgCount); // Retr permet de retrouver les headers du message n°MsgNum POP3.MsgNum := 1; POP3.Retr; end; pop3Retr : if Error = 0 then // Si pas d'erreur, c'est-à-dire si le message n°MsgNum a été trouvé begin // On prend les infos qui nous intéressent lstMsgs.Items.Add('"' + POP3.HeaderSubject + '" de ' + POP3.HeaderFrom); //Et on passe au message suivant POP3.MsgNum := POP3.MsgNum + 1; POP3.Retr; end else // Si le message n'existe pas, le listing est fini, on se déconnecte POP3.Quit; end; end; |
- stMsgs est une TListBox qui reçoit un Item par message trouvé
- lblMsg est un TLabel dans lequel on affiche le nombre de messages total
- idMsg et POP3 sont bien sûr nos TIdMessage et TIdPOP3
L'ordre des différents éléments du Case .. of est l'ordre dans lequel vont se déclencher les événements.
En premier lieu, lorsque la connexion est établie on envoie une requête Stat, qui nous permettra de récupérer le nombre de messages et de l'afficher.
Ensuite pour lister les différents messages, on récupère l'entête de chacun en utilisant la requête Retr et en augmentant l'ID du message à retrouver, jusqu'à ce qu'un code d'erreur nous informe que nous sommes en fin de liste.
On peut alors fermer la connexion.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.