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

Composants VCL Delphi Discussion :

Problème de IdSMTP Indy et Delphi 6


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Problème de IdSMTP Indy et Delphi 6
    Bonjour à tous,

    J'ai une ppli pour envoyer des mails en utilisant IdSMTP, l'appli ne fonctionne pas en utilisant un compte gmail (smtp.gmail.com et port 25/587) avec neuf box (j'y ai désactivé le filtrage)

    Pourriez vous m'indiquer un compo free SVP

    j'envoie aussi des pièces jointes avec les mails

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Pour Gmail il te faut utiliser le SSL sinon tu ne pourras pas t'y connecter.

    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
     
      IDSMTP:= TIDSMTP.Create(nil);
      FIDSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
      FIDSSL.SSLOptions.Method := sslvSSLv23;
      IDSMTP.IOHandler := FIDSSL;
     
      IDSMTP.Host := AHost;
      // a tester cete config
      IDSMTP.Port := 993;
      IDSMTP.UseTLS := utUseImplicitTLS;
     
      // ou Port 25 et UseTLS := utUseExplicitTLS
     
      IDSMTP.Username := AUser;
      IDSMTP.Password := APassWord;
     
      IDSMTP.Connect;
     
      // Le mail a envoyé
     
      FIDSSL.Free;
      IDSMTP.Free;
    Après il te faut deux DLLs dans le répertoire de l'application ou dans le répertoire system de windows.
    Tu les trouveras ici (pour D6 je crois qu'il faut les 0.98)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Même réponse que dans Comment utiliser IdSMTP pour envoyer un message

    As-tu fourni le login\pw ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IdSMTP1.Username = ...;
    IdSMTP1.Password = ...;
    Pour GMAIL c'est obligatoire, contrairement au SMTP de Neuf qui utilise probablement tes identifiants de connexion Internet pour confirmer ton identité !
    C'est une différence classique entre un SMTP fourni par le FAI et un SMTP externe

    satDefault est la valeur par défaut depuis Indy 10 mais ce n'est pas le cas en Indy 9 en atNone par défaut, faut forcer atLogin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdSMTP1.AuthType := satDefault; // Indy 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdSMTP1.AuthType := atLogin; // Indy 9 de D6
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Merci
    Bonjour,

    J'ai placé les fichiers DLL (libeay32.dll et ssleay32.dll) dans le dossier du projet;

    Le TIdSSLIOHandlerSocketOpenSSL n'est identifié ?

    J'ai trouvé un code ou on utilise TIdSSLIOHandlerSocketOpenSSL, pref ça fonctionne pas

    uses
    IdMessage, IdSMTP, IdSSLOpenSSL, IdGlobal, IdExplicitTLSClientServerBase;

    procedure SendEmail(const Recipients: string; const Subject: string; const Body: string);
    var
    SMTP: TIdSMTP;
    Email: TIdMessage;
    SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
    begin
    SMTP := TIdSMTP.Create(nil);
    Email := TIdMessage.Create(nil);
    SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

    try
    SSLHandler.MaxLineAction := maException;
    SSLHandler.SSLOptions.Method := sslvTLSv1;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    SSLHandler.SSLOptions.VerifyMode := [];
    SSLHandler.SSLOptions.VerifyDepth := 0;

    SMTP.IOHandler := SSLHandler;
    SMTP.Host := 'smtp.gmail.com';
    SMTP.Port := 587;
    SMTP.Username := 'yourusername@gmail.com';
    SMTP.Password := 'yourpassword';
    SMTP.UseTLS := utUseExplicitTLS;

    Email.From.Address := 'yourusername@gmail.com';
    Email.Recipients.EmailAddresses := Recipients;
    Email.Subject := Subject;
    Email.Body.Text := Body;

    SMTP.Connect;
    SMTP.Send(Email);
    SMTP.Disconnect;

    finally
    SMTP.Free;
    Email.Free;
    SSLHandler.Free;
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    SendEmail('recipient@whatever.com', 'Subject', 'Body');
    end;

Discussions similaires

  1. Problème avec exemples Indy 9 sur Delphi 6
    Par Invité dans le forum Composants VCL
    Réponses: 5
    Dernier message: 16/06/2011, 16h13
  2. Problème avec composant Indy
    Par yoshï dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/09/2007, 11h50
  3. Problème Indy avec Delphi 2005.
    Par Bjarne93 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 29/11/2005, 19h03
  4. Réponses: 21
    Dernier message: 02/10/2005, 19h05
  5. Problème avec GLScène 9 dans Delphi 2005
    Par xenos dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/09/2005, 22h13

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