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

Delphi Discussion :

sous indy envoyer un mail contenant un hyperlien


Sujet :

Delphi

  1. #1
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut sous indy envoyer un mail contenant un hyperlien
    Bonjour à tous et bonne année,

    Je souhaite envoyer un mail contenant un hyperlien à une adresse mail orange,
    sous D7, Windows Seven 64 bits et Indy 9.00.10.

    Le code ci-dessous compile sans anomalie et pas d'erreur non plus à l'exécution.
    le code passe bien sous le send(message).

    Le mail arrive dans la boite mais reste vide..

    Voici le code :

    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
    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
     
    procedure TFAlerte.SendMail;
    var
      p: boolean;
      lTextPart: TIdText;
      lMessage: TIdMessage;
      IdSMTP1: TIdSMTP;
     
    begin
     
      IdSMTP1 := TIdSMTP.Create(self);
      lMessage := TIdMessage.Create(Self);
      lTextPart := TIdText.Create(lMessage.MessageParts);
     
      try
     
        IdSMTP1.Host := 'smtp.orange.fr';
        IdSMTP1.Port := 25;
        IdSMTP1.AuthenticationType := AtNone;
     
        with lMessage do
        begin
          CharSet := 'ISO-8859-1';
          Encoding := meMIME;
     
    //      ContentType := 'text/html';
          ContentType := 'text/plain';
     
          ContentTransferEncoding := 'quoted-printable';
          From.Address := DeMail@domaine.fr';
          Recipients.EMailAddresses := AMail@orange.fr';
          Subject := 'TEST';
     
    //      Body.Text := 'coucou';
     
          lTextPart.Body.Text := '<!DOCTYPE html><html><body><b>http://www.google.fr</b></body></html>';
     
        end;
     
        p := true;
        try
          if not IdSMTP1.Connected then
            IdSMTP1.Connect(-1);
        except 
          p := false;
        end;
     
        if not p then
          showmessage('erreur')
        else
          IdSMTP1.Send(lMessage); 
     
      finally
        IdSMTP1.Disconnect;
        lTextPart.Free;
        lMessage.Free;
        IdSMTP1.Free;   
      end;
    end;
    merci de me dire ce qui ne va pas

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai utilisé ce code il y a quelque temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    bodyMsg := TIdText.Create(aMail.MessageParts);
    bodyMsg.Body.Text := MessageTxt;
    bodyMsg.ContentType := 'text/plain';
     
    bodyMsg := TIdText.Create(aMail.MessageParts);
    bodyMsg.ContentType := 'text/html';
    bodyMsg.Body.Text := messageHtml;
    Il suffit de mettre du code HTML dans "messageHtml" avec un lien hypertext.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    comme j'avais un programme test (2010) déjà prêt j'ai fait ceci
    à noter la partie en rouge
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    idSmtp1.Host:=smtpHost.Text;
    idSmtp1.Username:=smtpUser.text;
    idSmtp1.Password:=SmtpPassword.text;
    idsmtp1.Port:=StrToInt(smtpPort.Text);
    if useTLS.Checked then
      begin
        idSMTP1.UseTLS:=utUseImplicitTLS; // 1
        idSMTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
      end
    else begin
      idSMTP1.UseTLS:=utNoTLSSupport; // 0
    end;
    
    IdMessage1.Clear; //Efface l'entête et le corps du message
    IdMessage1.From.Text :=smtpmail.text; //Adresse email de l'expediteur
    IdMessage1.ReplyTo.EMailAddresses:=smtpmail.Text; //Adresse email où le destinataire pourra répondre
    IdMessage1.Recipients.EMailAddresses:=popmail.text; //Adresse email du destinataire
    IdMessage1.Date:=Now;             //Date de l'envoi du message
    IdMessage1.Subject:='TEST ENVOI' ; //Sujet du message
    idmessage1.ContentType:='text/html';
    idmessage1.Body.Text:='<a href="https://www.developpez.net/forums/f15/environnements-developpement/delphi/">Delphi</a>';
    try
    idSMTP1.Connect;
    idSMTP1.Send(idMessage1);
    idSMTP1.Disconnect;
    Memo1.Lines.Add('SMTP Ok , message envoyé');
    Step:=1;
    except
      MessageDlg('Impossible de se connecter au serveur SMTP. E-mail non envoyé', mtError, [mbOK], 0);
      Memo1.Visible:=False;
    end;
    cela étant j'évite d'utiliser le port 25 et utilise TLS
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Merci à tous les deux

    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     lTextPart := TIdText.Create(IdMessage1.MessageParts);
    c'est clair, ça ne fonctionne pas.

    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ContentType := 'text/html';
    ça marche, mais le mail arrive dans les indésirables..

    et j'ai testé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ContentType := 'text/plain';
    le mail arrive normalement mais la chaine html n'est pas traitée correctement et le lien est inutilisable..

    je vais chercher encore et reviens vous dire.

  5. #5
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Bon, j'ai trouvé une solution pour éviter les indésirables :

    j'ai ajouté un petit texte avant le lien et ça suffit.

    voici un code qui fonctionne:

    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
    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
     
    procedure TFAlerte.SendMail;
    var
      p: boolean;
      IdMessage1: TIdMessage;
      IdSMTP1: TIdSMTP;
     
    begin
     
      IdSMTP1 := TIdSMTP.Create(Self);
      IdMessage1 := TIdMessage.Create(Self);
     
      try
     
        IdSMTP1.Host := 'smtp.orange.fr';
        IdSMTP1.Port := 25;
        IdSMTP1.AuthenticationType := AtNone;
     
        with IdMessage1 do
        begin
          Clear;
          AttachmentEncoding := 'MIME';
          CharSet := 'ISO-8859-1';
          Encoding := meMIME;
          ContentTransferEncoding := 'quoted-printable';
          From.Address := 'AMail@orange.fr';
          Recipients.EMailAddresses := 'DeMail@orange.fr';
          Subject := 'TEST';
          ContentType := 'text/html';
          Body.Add('Coucou !');
          Body.Add('<a href="http://www.google.fr">Google</a>');
        end;
     
        p := true;
        try
          if not IdSMTP1.Connected then
            IdSMTP1.Connect(-1);
        except
          p := false;
        end;
     
        if not p then
          showmessage('erreur')
        else
          IdSMTP1.Send(IdMessage1);
     
      finally
        IdSMTP1.Disconnect;
        IdMessage1.Free;
        IdSMTP1.Free;
      end;
    end;
    @bientôt et merci pour le coup de main
    et j'attends vos commentaires ou améliorations

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Pour moi l'effet indésirable est surtout du au fait de l'utilisation du port 25 et non d'un port SSL.

    le code que j'avais posté, je l'ai bien évidemment testé (c'est la première fois que je mettais un lien dans un email indy) : port 465 SSL (donc avec TLS)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Pour moi l'effet indésirable est surtout du au fait de l'utilisation du port 25 et non d'un port SSL.
    C'est possible, mais comme j'ai envie de faire simple pour ce code..

    Maintenant que le souci du lien est réglé et d'autant que le texte qui le précède va me servir, j'envisage d'aller plus loin :

    lancer un exécutable situé en local sur le poste recevant le mail.

    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
    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
     
    procedure TFAlerte.SendMail;
    var
      p: boolean;
      IdMessage1: TIdMessage;
      IdSMTP1: TIdSMTP;
     
    begin
     
      IdSMTP1 := TIdSMTP.Create(Self);
      IdMessage1 := TIdMessage.Create(Self);
     
      try
     
        IdSMTP1.Host := 'smtp.orange.fr';
        IdSMTP1.Port := 25;
        IdSMTP1.AuthenticationType := AtNone;
     
        with IdMessage1 do
        begin
          Clear;
          AttachmentEncoding := 'MIME';
          CharSet := 'ISO-8859-1';
          Encoding := meMIME;
          ContentTransferEncoding := 'quoted-printable';
          From.Address := 'DeMail@domaine.fr';
          Recipients.EMailAddresses := 'AMail@orange.fr';
          Subject := 'TEST';
          ContentType := 'text/html';
          Body.Add('Coucou !');
     
    {j'ai testé ces deux versions mais lors du clic sur le lien rien ne se passe }
     
     
    //      Body.Add('<a href = "file:///c:\ProgD7\Combine\MaCombine.exe">CLICK HERE</a>');
    //      Body.Add('<a href="c:\MonDossier\MonProg.exe">CLICK HERE</a>');
        end;
     
        p := true;
        try
          if not IdSMTP1.Connected then
            IdSMTP1.Connect(-1);
        except
          p := false;
        end;
     
        if not p then
          showmessage('erreur')
        else
          IdSMTP1.Send(IdMessage1);
     
      finally
        IdSMTP1.Disconnect;
        IdMessage1.Free;
        IdSMTP1.Free;
      end;
    end;
    Aucune des deux solutions testées ne fonctionnent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          Body.Add('<a href = "file:///c:\ProgD7\Combine\MaCombine.exe">CLICK HERE</a>');
          Body.Add('<a href="c:\MonDossier\MonProg.exe">CLICK HERE</a>');
    merci de votre aide

  8. #8
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    houpss, l'exécutable n'était pas sur le poste !

    ça marche !
    En fait, une seule écriture fonctionne, du moins dans la méthode utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Body.Add('<a href = "file:///c:\MonDossier\MonProg.exe">Click here</a>');
    Lors du premier clic sur le lien, une boite de dialogue s'ouvre permettant à l'aide d'un scruteur
    d'aller cherche le .exe souhaité, ce lien étant conservé ultérieurement (windows oblige)

    l'idéal bien sûr aurait été d'éviter cette étape..

    mais sur ce point j'attends vos suggestions.

    @bientôt

  9. #9
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @SergioMaster

    Comme je n'aime pas laisser des posts qui ne donner pas de bonne informations, je rectifie :
    En fait, la solution que j'ai utilisée ne colle qu'avec Thunderbird et encore j'ai des difficultés à changer le programme de liaison.

    Cela ne fonctionne pas sur la messagerie Orange.

    Je suppose que le code ne franchit pas les barrières de sécurité.
    D'où l'intérêt pour le code (SSL) que tu as proposé dont les détails complets sont d'ailleurs dans la FAQ.

    Sous Indy9, le composant TIdSSLIOHandlerSocketOpenSSL n'existe pas.
    Je suis donc à la recherche de la dernière version de Indy10 afin de corriger mon soft.
    Voilà.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par cantador Voir le message
    Cela ne fonctionne pas sur la messagerie Orange.
    Orange pose des problèmes c'est hélas que trop vrai cf https://www.developpez.net/forums/d1...l-delphi-10-a/

    Sous Indy9, le composant TIdSSLIOHandlerSocketOpenSSL n'existe pas.
    Là je suis étonné j'ai une version D7 avec la version 9.00.10 et j'ai ce composant
    Je suis donc à la recherche de la dernière version de Indy10 afin de corriger mon soft.
    https://www.indyproject.org/download/ cela dit, il faut utiliser SVN
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Là je suis étonné j'ai une version D7 avec la version 9.00.10 et j'ai ce composant
    Peut-être n'avons nous pas la même version ?

    J'ai réussi à installer Indy 10.0.52 (je ne sais s'il y a mieux..)
    malgré néanmoins le paquet dclIndyCore70.dpk dans Protocols qui refuse de s'installer et qui s'arrête sur IndySystem70;
    alors que les paquet system se sont installés sans problème.

    en tout cas, j'ai maintenant le composant TIdSSLIOHandlerSocketOpenSSL
    un grand moment..:lol

    je vais pouvoir tester mon soft à la noix.
    +1 pour toi
    @+

  12. #12
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    raaahhaa
    bon, maintenant j'ai un souci avec TIdText qu'il ne trouve pas..

    ça vient peut-être du paquet qui ne veut pas s'installer..
    à noter que le même paquet (dclIndyCore70.dpk) se trouve dans deux dossiers (Core et Protocols)
    ?

  13. #13
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    ah ça y est, je viens de comprendre
    ce sont les unités qui ne sont pas intégrés automatiquement..

    IdMessageParts.pas, IdText.pas, IdAttachment.pas, IdAttachmentFile.pas, IdAttachmentMemory.pas, etc.

    j'avance..
    ouf..

  14. #14
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut dernière mouture
    Voilà le code avec Indy10 et les deux dll bien placées.

    j'essaie dans un premier temps d'envoyer le mail..

    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
    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
     
    procedure TFAlerte.SendMail3;
    var
      IdSMTP: TIdSMTP;
      IdSSLIO: TIdSSLIOHandlerSocketOpenSSL;
      IdMessage: TIdMessage;
    begin
      inherited;
     
      IdSMTP := TIdSMTP.Create(nil);
      IdMessage := TIdMessage.Create(nil);
      IdSSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
     
      try
     
        IdSMTP.AuthType := AtNone; 
        IdSMTP.Host := 'smtp.orange.fr';
        IdSMTP.Port := 465;
     
        IdSSLIO.SSLOptions.Method := sslvTLSv1;
     
    //    IdSMTP.Username := Login;
    //    IdSMTP.Password := Password;
     
        IdSMTP.IOHandler := IdSSLIO;
        IdSMTP.UseTLS := utUseExplicitTLS;
     
        try
          IdSMTP.Connect;
        except
          on e: Exception do
            raise ESMTPError.Create('Erreur de connexion au serveur SMTP' + #10#13 + e.Message);
        end;
     
        IdMessage.Clear;
     
        IdMessage.From.Text := 'TOTO';
        IdMessage.ReplyTo.Add.Address := 'FromMail@domaine.fr';
     
        IdMessage.Recipients.Add.Address := 'ToMail@orange.fr';
     
        IdMessage.Subject := 'TEST';
     
        IdMessage.Date := Now;
        IdMessage.Priority := mpNormal;
     
        IdMessage.Body.Text := 'TEST'; 
     
        try
          IdSMTP.Send(IdMessage);
        except
          on e: Exception do
            raise ESMTPError.Create('Erreur lors de l''envoi de l''email.' + #10#13 + e.Message);
        end;
     
      finally
        IdSMTP.Disconnect;
     
        FreeAndNil(IdSSLIO);
        FreeAndNil(IdMessage);
        FreeAndNil(IdSMTP);
      end;:weird:
    end;
    Mais le mail ne part pas avec une exception sur le deuxième raise;
    "Non de domaine requis"

    ?
    ya un truc..

    merci de votre aide

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Le From ligne 37 doit être une adresse mail << c'est le nom de domaine manquant
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  16. #16
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Le From ligne 37 doit être une adresse mail << c'est le nom de domaine manquant
    J'avais fait déjà ce test en mettant une adresse mail valable
    mais cela donne la même erreur

    je n'y comprends rien..

    en tout cas merci pour ton aide et pour ton remarquable dévouement sur le site
    chapeau bas
    +1

  17. #17
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Est-ce normal que je n'ai pas IdMessageBuilder
    sous D7 et Indy 10.0.52 ?

    merci

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Pourquoi ne pas mettre les trois composants idsmtp, idssliohandler et idmessage sur la fiche et sauvegarder.
    Les unités nécessaires seront rajoutées. Ensuite il sera toujours temps de supprimer ces 3 composants
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  19. #19
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Pourquoi ne pas mettre les trois composants idsmtp, idssliohandler et idmessage sur la fiche et sauvegarder.
    Les unités nécessaires seront rajoutées. Ensuite il sera toujours temps de supprimer ces 3 composants
    j'ai fait cela.

    voici mes uses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
      IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP,
      IdMessage, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
      IdSSLOpenSSL, IdText, IdAttachment, IdAttachmentFile,
      IdAttachmentMemory, cxGraphics, cxControls, cxLookAndFeels,
      cxLookAndFeelPainters, cxContainer, cxEdit, cxTextEdit, cxMemo, StdCtrls, EncdDecd;
    mais pas de IdMessageBuilder
    car je voudrais utiliser une autre technique..

    merci

  20. #20
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Bon, je pense avoir compris qu'en fait il n'est pas possible et même pas souhaitable
    de faire exécuter un programme en local à partir d'un hyper lien reçu dans un mail.
    Sur le plan de la sécurité, c'est plutôt dangereux..

    C'est la raison pour laquelle je me heurte à toutes ces complications car tout doit être verrouillé.

    En revanche, bien sûr, un hyperlien pointant sur un site internet avec un bout de code tout simple fonctionne parfaitement

    êtes-vous d'accord avec moi ?

Discussions similaires

  1. [Indy] Envoyer un mail avec Delphi
    Par Hmalik dans le forum Composants VCL
    Réponses: 1
    Dernier message: 13/03/2011, 17h18
  2. Envoyer un mail contenant le résultat d'un SELECT
    Par ToniConti dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 16/11/2010, 09h43
  3. Comment envoyer un mail contenant le corps d'un document?
    Par kaddrik dans le forum SharePoint
    Réponses: 4
    Dernier message: 31/05/2010, 13h07
  4. envoyer un mail contenant un lien
    Par polo86 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/06/2009, 13h05

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