Problème de connection Smtp et gmail

Résolu
Utilisateur anonyme - 19 nov. 2017 à 14:18
 Utilisateur anonyme - 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
A voir également:

6 réponses

korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
19 nov. 2017 à 15:08
0
Utilisateur anonyme
19 nov. 2017 à 23:25
bonsoir Korgis;
c'est pas une réponse ça , pour moi
cordialement
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14 > Utilisateur anonyme
20 nov. 2017 à 10:26
Si tu veux de l'aide montre nous ton bout de code qui pose problème !
0
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17 > Utilisateur anonyme
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 ?
0
Utilisateur anonyme
Modifié le 23 nov. 2017 à 14:04
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,
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 nov. 2017 à 23:25
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,
0
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
24 nov. 2017 à 23:45
Salut Cirec,

ça a l'air cool... B-)
Il va vraiment falloir que j'installe Indy10 sur mon D7!
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
Modifié le 26 nov. 2017 à 19:18
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
0
Utilisateur anonyme
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 !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
Modifié le 26 nov. 2017 à 19:17
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
0
Utilisateur anonyme
3 déc. 2017 à 19:43
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
0
Rejoignez-nous