IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Erreur lors d'envoi un mail


Sujet :

Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut Erreur lors d'envoi un mail
    Bonjour,
    lors d'un test d'envoi d'un mail, je reçois le message d'erreur suivant:

    "le projet test.exe a provoqué une classe d'exception EIdprotocolReplayError avec le message '5.7.1 Authentification required' "

    vouci mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.Button2Click(Sender: TObject);
    begin
    IdMessage1.Clear; //liberez le corps du message
    IdMessage1.From.Text :=Edit4.Text; //Adresse email de l'expediteur
    IdMessage1.ReplyTo.EMailAddresses:=Edit4.Text; //Adresse email pour la réponse
    IdMessage1.Recipients.EMailAddresses:=Edit1.Text; //Adresse email du destinataire
    IdMessage1.Date:=Date; //Date de l'envoi du message
    IdMessage1.Subject:=Edit3.Text; //Sujet du message
    IdMessage1.Priority:=mpNormal; //Priorité du message
    IdMessage1.Body.Assign(Memo1.Lines); //text du message
    if not (Edit2.Text='') then TIdAttachment.Create(IdMessage1.MessageParts,Edit2.Text); //attacher la pieces jointe
    IdSMTP1.AuthenticationType:=atLogin; //Type d'authentification
    IdSMTP1.Host:=Edit5.Text;//Hôte (par exemple pour smtp.mail.yahoo.fr pour yahoo)
    IdSMTP1.Port:=SpinEdit1.Value; //Port (par exemple pour gmail : 587, 25 pour yahoo, 25 pour free)
    IdSMTP1.UserName:=Edit6.Text; //Nom d'utilisateur
    IdSMTP1.Password:=Edit7.Text; //Mot de passe
    Screen.Cursor:=crHourGlass; //Curseur sablier
     
    IdSMTP1.Connect; //Connexion au serveur
    try
    IdSMTP1.Send(IdMessage1); //Envoi du message
    finally
    IdSMTP1.Disconnect; //Déconnexion de serveur
    end;
    Screen.Cursor:=crDefault; //Curseur par défaut
    Showmessage('Méssage envoyés avec succés');
    end;
    merci
    Nabil74

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ NABIL74, ton code fonctionne très bien chez moi sous Seven 64Bits et compilé avec D6.

    Ma fonction remaniée fonctionne aussi correctement.

    Regarde ce que tu envoies et fais gaffe aux spams déjà discuté sur ce forum (utilisation Ftp et port 25).

    @+,

    Cincap

  3. #3
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Peut être faut il avoir la DLL libeay32.dll et ssleay32.dll a côté de l'exe ?
    J'ai déjà eu un soucis similaire

  4. #4
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    salut ,

    @ cincap,
    justement ma source marchait auparavant chez-moi, mais maintenant non! sois sous xp ou sous seven.
    même en déctivant mon antivirus!

    @ retwas,
    ça n'as pas marché!
    je continue...

  5. #5
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Personnellement je n'utilise pas le AuthentificationType, je le laisse par défaut et je spécifie les identifiants du serveur SMTP par la suite.
    Si tu veux tester voici mon code (j'ai enlevé pas mal de bout au milieu qui ne doivent pas te servir)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    function TForm2.ySendSMTP(ParamDataMessage : TGestionnaireMessage) : boolean;
    var
       cCursor                 : TCursor;
       iCompte                 : integer;
       iNbMail, iMail, iMailOk : integer;
       UnEmail                 : TEmail;
       idSMTP                  : TIdSMTP;
       idMessage               : TIdMessage;
       idSSLIO                 : TIdSSLIOHandlerSocketOpenSSL;
       bContinue               : boolean;
       bPremier                : boolean;
       sException              : string;
       FormProgress            : TfvEtat;
       ListEmail               : TList<TEmail>;
       ListDataMessage         : TList<TDataMessage>;
       i                       : integer;
    begin
       Result  := False;
       cCursor := Screen.Cursor;
     
       try
          Screen.Cursor := crHourGlass;
     
          // initialisations des composants indy
          idSMTP    := TIdSMTP.Create(nil);
          idMessage := TIdMessage.Create(nil);
          idSSLIO   := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
     
          try
             // paramétrage de la connexion SMTP
             idSMTP.AuthType := satDefault;
             idSMTP.Host     := 'smtp@gmail.com';
             idSMTP.Port     := '25';
     
             if (sIdentifiant <> '') and
                (sPwd  <> '') then
             begin
                idSSLIO.SSLOptions.Method := sslvTLSv1;
     
                idSMTP.Username  := sIdentifiant;
                idSMTP.Password  := sPwd;
                IdSMTP.IOHandler := idSSLIO;
                idSMTP.UseTLS    := utUseExplicitTLS;
             end;
     
             // connexion
             try
                idSMTP.Connect;
             except
                on e : EIdSocketError do
                begin
                   ShowMessage('SocketError : ' + e.Message);
                   bContinue := False;
                end;
     
                on e : SysUtils.Exception do
                begin
                   ShowMessage('Erreur de connexion au serveur SMTP : ' + e.Message);
                   bContinue := False;
                end;
             end;
     
             if bContinue then
             begin
                idMessage.Clear;
     
                // initialisation des adresses (expediteur, destinataire, cc, cci)
                idMessage.From.Text           := sExpediteur;
                idMessage.ReplyTo.Add.Address := sExpediteur;
     
                for iCompte := 0 to UnEmail.slDestinataire.Count - 1 do
                   idMessage.Recipients.Add.Address := UnEmail.slDestinataire[iCompte];
     
                // paramétrage du message
                idMessage.Date     := Now;
                idMessage.Priority := mpNormal;
     
                idMessage.Subject := sObjet;
     
                // corps et des pièces jointes du message
                idMessage.Body.Text := UnEmail.sMessage
     
                for iCompte := 0 to ListePieceJointe.Count - 1 do
                   if not ListePieceJointe[iCompte].bModeleFusion then
                      TIdAttachmentFile.Create(idMessage.MessageParts, ListePieceJointe[iCompte].sCheminDoc);
     
                try
                   idSMTP.Send(idMessage);
                except
                   on e : EIdSMTPReplyError do
                   begin
                      ShowMessage('Erreur ' + e.Message);
                   end;
     
                   on e : SysUtils.Exception do
                   begin
                      ShowMessage('Erreur : ' + e.Message);
                   end
                end;
             end;
     
             // déconnexion du serveur SMTP
             if IdSMTP.Connected then
                idSMTP.Disconnect();
          except
             on e : SysUtils.Exception do
             begin
                ShowMessage('Erreur : ' + e.Message);
             end
          end;
       finally
          DetruitObjet(idMessage);
          DetruitObjet(idSSLIO);
          DetruitObjet(idSMTP);
     
          Screen.Cursor := cCursor;
       end;
    end;

Discussions similaires

  1. [MySQL] erreur lors d'envoi mailing via PHP/SQL
    Par gael-abdelhadi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/01/2012, 23h45
  2. Erreur lors d'envoi de mail
    Par badjina dans le forum Langage
    Réponses: 5
    Dernier message: 16/04/2010, 10h31
  3. Erreur lors d'envoi d'un rapport C8 par mail
    Par sefaxe82 dans le forum Cognos
    Réponses: 1
    Dernier message: 26/10/2009, 17h03
  4. [Configuration] Erreur lors d'envoie de mail avec PHP
    Par ostie127 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 05/02/2008, 18h35
  5. Réponses: 2
    Dernier message: 03/04/2007, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo