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;
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;
@+ Cirec la belle voix de mon filleul
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionuses 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;
@+ Cirec la belle voix de mon filleul
19 nov. 2017 à 23:25
c'est pas une réponse ça , pour moi
cordialement
20 nov. 2017 à 10:26
20 nov. 2017 à 10:42
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 ?