| 12
 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
 
 | var
  IdMessage: TIdMessage;
  IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
  IdSMTP: TIdSMTP;
  Message: TStrings;
  i: Integer;
  Fichiers: Array Of String;
begin
  IdMessage := TIdMessage.Create(nil); //création dynamique du composant
 
  IdMessage.From.Address := 'expediteur@domaine.com';
 
  //Ces deux lignes peuvent-être répétées autant de fois que vous désirez 
  //d'adresse de réponse et/ou de destinataire
  IdMessage.ReplyTo.Add.Address := 'expediteur@domaine.com';
  IdMessage.Recipients.Add.Address := 'destinataire@domaine.com' ;
 
  IdMessage.Subject := 'Sujet du message';
 
  IdMessage.ContentType := 'multipart/alternative'; //Message 'découpé' en plusieurs parties
 
  Message := Memo1.Lines; //par exemple... il faut juste que ce soit un TStrings !
 
  //Ici on va créer les différentes parties du message
  //Au cas où le client ne gère pas les messages HTML :
  With TIdText.Create(IdMessage.MessageParts, Message) Do
  Begin
    ContentType := 'text/plain';
    Body.Insert(0, 'Ce message est un message HTML. Configurez votre client de courrier électronique' +
   'pour le visionner de manière appropriée');
  end;
 
  //Ajout du message au format HTML (en supposant que Message contient du HTML) :
  with TIdText.Create(IdMessage.MessageParts, Message) do
    ContentType := 'text/html';
 
  //Et maintenant, l'ajout des pièces jointes :
  //Le tableau de strings Fichiers doit être remplis avec les chemins complets des fichiers à inclure
  for i := Low(Fichiers) to High(Fichiers) do
    TIdAttachment.Create(IdMessage.MessageParts, Fichiers[i]);
 
  //On passe ensuite à l'envoi du message:
  IdSMTP := TIdSMTP.Create(nil) ; //Création dynamique du composant
 
  IdSMTP.Port := 25; //Le port SMTP standard... 
  IdSMTP.Host := 'smtp.serveur.com';  //Le serveur auquel se connecter
 
// paramétrage de la connexion SSL.
If SSLConnect Then
 begin
   IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.RootCertFile :='RootCert.cer';
   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := 'Certificat.cer';
   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile := '';
   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;
 end;
 
  //Ensuite on se connecte et on envoit le message, en gérant les erreurs, tant qu'à faire !
  Try
    Try
      IdSMTP.Connect;
      IdSMTP.Send(IdMessage);
    except
      on e: exception do MessageDlg(e.Message, mtError, [mbOK], 0);
    end;
  finally
    IdSMTP.Disconnect;
    IdSMTP.Free;
    IdMessage.Free;
  end;
 
end ; | 
Partager