Problème de connection Smtp et gmail [Résolu]

cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 19 nov. 2017 à 14:18 - Dernière réponse : cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention
- 3 déc. 2017 à 19:43
Bonjour à tous;
Je n'arrive pas à envoyer des mails depuis mon compte gmail.
avec mon autre compte bbox, le programme marche super bien, mais pas si je change pour gmail.
j'ai essayé de changer le port: 25, 465, 587
voici le message d'erreur:
ERROR: Socket Error # 10060 Connection timed out.
ou bien connection closed gracefuly
pourriez-vous m'aider ??,
c'est; je pense juste une erreur de paramétrage du smtp

Merci d'avance
Cordialement
Afficher la suite 
45Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention

11 réponses

Répondre au sujet
korgis 392 Messages postés samedi 17 mai 2003Date d'inscription 24 novembre 2017 Dernière intervention - 19 nov. 2017 à 15:08
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 19 nov. 2017 à 23:25
bonsoir Korgis;
c'est pas une réponse ça , pour moi
cordialement
dubois77 670 Messages postés jeudi 17 avril 2008Date d'inscription 10 décembre 2017 Dernière intervention > cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 20 nov. 2017 à 10:26
Si tu veux de l'aide montre nous ton bout de code qui pose problème !
korgis 392 Messages postés samedi 17 mai 2003Date d'inscription 24 novembre 2017 Dernière intervention > cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 20 nov. 2017 à 10:42
@cs_sagitarius

Euh... c'est pas bien clair.

Qu'est-ce qui n'est pas une réponse : la mienne ou celle vers laquelle je t'aiguille ?
Commenter la réponse de korgis
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - Modifié par Cirec le 23/11/2017 à 14:04
0
Utile
Bonjour à tous;
Merci pour votre aide;
@Korgis, non, t'inquiète pas , c'est que je suis en colère de ne pas réussir et la réponse du lien n'est pas explicite, et ne réponds pas au problème.
donc, voici mon code :
procedure TMailerForm.Envoyer_MailClick(Sender: TObject);
begin
  MemoStatus.Clear;
  IdMessage.From.Address := From.Text;
  IdMessage.Recipients.EMailAddresses := Destinataire.Text + ',' + CC.Text;
  IdMessage.Subject := Subject.Text;
  IdMessage.Body.Text := Body.Text;
  try
if FileExists(FichiersJoints.Text) then
  TIdAttachmentFile.Create(IdMessage.MessageParts,FichiersJoints.Text);
    try
      SMTP.Connect;
      SMTP.Send(IdMessage);
      MemoStatus.Lines.Insert(0,'le message à bien été envoyé avec succès');
    except
      on E:Exception do
        MemoStatus.Lines.Insert(0, 'ERREUR: ' + E.Message);
    end;    
{ERREUR: Socket Error # 10060 ou soit Connection timed out.}
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;
end; 

Voici les deux types d'erreurs rencontrées:
ERREUR: Socket "Error # 10060"
ou soit "Connection timed out".

J'ai mis aussi, un IdSSLIOHandlerSocketOpenSSL1.
Mais je débute et je n'arrive pas à le paramétrer je pense, j'ai essayé plusieurs solutions de paramétrages, mais, rien n'à faire ça marche pas.
Désactivé les sécurité de mon compte Google pour accepté les applications, nada marche pas.
Soit c'est mon programme soit c'est sur mon compte Gmail, qui faut paramétrer.
Faut-il d'autres fichiers ???. (dll, certificat d'accès à gmail....)

Et j'aimerais bien envoyer mes devis et factures(.doc) avec mon programme, si quelqu'un pouvait m'aider.
Merci d'avance;
Cordialement,
Commenter la réponse de cs_sagitarius
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 23 nov. 2017 à 23:25
0
Utile
1
Salut,

je t'ai fait une version simplifié mais fonctionnelle
libeay32.dll & ssleay.dll doivent se trouver dans le répertoire de l'exe:
uses ... 
IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdMessage, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdMessageClient, IdSMTPBase, IdSMTP;

function SendEmail(const aRecipient, aSubject, aBody: string): Boolean;
var
  aIOHandler        : TIdSSLIOHandlerSocketOpenSSL;
  aMessage          : TIdMessage;
begin
  Result := False;
    // création d'un TIdSSLIOHandlerSocketOpenSSL
  aIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
      // paramétrage du IOHandler
    aIOHandler.SSLOptions.Method := sslvTLSv1;
      // crée le SMTP pour l'envoie du mail
    with TIdSMTP.Create(nil) do
    try
      Username := 'TonAdresseMail@gmail.com';
      Password := 'Ton Mot de Passe';
      Port := 587;
      Host := 'smtp.gmail.com';
      MailAgent := 'Mail Demo by Cirec';
      IOHandler := aIOHandler;
      // cette ligne doit être après l'assignation de IOHandler
      UseTLS := utUseExplicitTLS;
        // crée le corps du mesage
      aMessage := TIdMessage.Create(nil);
      try
        with aMessage do
        begin
          From.Address := Username;
          Recipients.EMailAddresses := aRecipient;
          Subject := aSubject;
          Body.Text := aBody;
        end;
        // connexion et envoie du mail
        Connect;
        Send(aMessage);
        Disconnect;
        // si on arrive jusque ici c'est que le mail est parti
        Result := True;
      finally
        aMessage.Free;
      end;
    finally
      free;
    end;
  finally
    aIOHandler.Free;
  end;
end;

procedure Tfrm_MailDemo.btn_SendClick(Sender: TObject);
begin
  if SendEmail('Destinataire@XXX.XX', 'Sujet du message', 'Texte du message à envoyer') then
    Caption := 'votre EMail a été envoyé'
  else
    Caption := 'votre EMail n''a pas été envoyé';
end;

Voilà y a pas plus simple

Cordialement,
korgis 392 Messages postés samedi 17 mai 2003Date d'inscription 24 novembre 2017 Dernière intervention - 24 nov. 2017 à 23:45
Salut Cirec,

ça a l'air cool... B-)
Il va vraiment falloir que j'installe Indy10 sur mon D7!
Commenter la réponse de Cirec
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - Modifié par Cirec le 26/11/2017 à 19:18
0
Utile
1
Salut,

ce code devrait aussi fonctionner, avec de petites modifications, sous D7 & Indy9 ;)
si ça t’intéresse je peux le tenter ^^
Cordialement,
     
@+ Cirec la belle voix de mon filleul
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 25 nov. 2017 à 01:25
Bonsoir Cirec;
UN GRAND MERCI POUR TON AIDE !!!!!!!!!!!,

j'avais un message d'erreur: EIdOSSL
"n'a pas pu charger la bibliothèque SSL"
il me manquait les fichiers dll !!,
J'ai cherché , puis, j'ai retrouvé le lien que tu m'avais déjà donné,
http://indy.fulgan.com/SSL/Archive/
puis, j'ai téléchargé le fichier: indy_OpenSSL096m.zip
et voilà !!!,

salut Korgis !!

Un grand MERCI À VOUS POUR VOTRE SYMPATHIE !!
très cordialement
et bon codding et bon week-end !!!
Commenter la réponse de Cirec
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - Modifié par Cirec le 26/11/2017 à 19:17
0
Utile
re,
tous spécialement pour mon ami Korgis ;)
la version Indy9 testé avec D7:
uses IdIOHandler, IdIOHandlerSocket,
  IdSSLOpenSSL, IdMessage, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdSMTP;
...
function SendEmail(const aRecipient, aSubject, aBody: string): Boolean;
var
  aIOHandler        : TIdSSLIOHandlerSocket;        { ******* Modifié ******* }
  aMessage          : TIdMessage;
begin
  Result := False;
    // création d'un TIdSSLIOHandlerSocketOpenSSL
  aIOHandler := TIdSSLIOHandlerSocket.Create(nil);  { ******* Modifié ******* }
  try
      // paramétrage du IOHandler
    aIOHandler.SSLOptions.Method := sslvSSLv23;

      // crée le SMTP pour l'envoie du mail
    with TIdSMTP.Create(nil) do
    try
      AuthenticationType := atLogin;                { ******* Ajouté ******* }
      Username := 'TonAdresseMail@gmail.com';
      Password := 'Ton Mot de Passe';
      Port := 465;                                  { ******* Modifié ******* }
      Host := 'smtp.gmail.com';
      MailAgent := 'Mail Demo by Cirec';
      IOHandler := aIOHandler;
      {// cette ligne doit être après l'assignation de IOHandler
      UseTLS := utUseExplicitTLS;}                  { ******* Retiré ******* }
        // crée le corps du mesage
      aMessage := TIdMessage.Create(nil);
      try
        with aMessage do
        begin
          From.Address := Username;
          Recipients.EMailAddresses := aRecipient;
          Subject := aSubject;
          Body.Text := aBody;
        end;
        // connexion et envoie du mail
        Connect;
        Send(aMessage);
        Disconnect;
        // si on arrive jusque ici c'est que le mail est parti
        Result := True;
      finally
        aMessage.Free;
      end;
    finally
      free;
    end;
  finally
    aIOHandler.Free;
  end;
end;


voilà si ça peut servir ... c'est avec plaisir ;)

Cordialement,
     
@+ Cirec la belle voix de mon filleul
Commenter la réponse de Cirec
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 déc. 2017 à 19:43
0
Utile
bonsoir,
Merci Cirec pour tes réponses, je ne comprends toujours pas pourquoi, ça ne fonctionnait pas avec mon code, je n'ai pas eu le temps de regarder, bien que j'avais les fichiers dll dans le même répertoire , mais pas téléchargé sur le bon site, je pense.
maintenant, c'est pour insérer une image dans mon TRichEdit et le format texte qui, à l'arrivé n'est pas en gras ou en couleur, ...
Bref, je vais mettre un nouveau post.
merci de ta gentillesse
cordialement
Commenter la réponse de cs_sagitarius

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.