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

Composants VCL Delphi Discussion :

TidMEssage et HTML


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé Avatar de jcharles
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 82
    Par défaut TidMEssage et HTML
    Bonjour à Tous,

    j'ai un petit probléme, je suis sur un programme qui doit envoyer des mails en HTML automatiquement depuis un BDD à des clients selon certains critéres.
    je recupére donc le code HTML qui j'inclus dans un memo puis je modifie le mot 'PRENOM' par celui du client et je l'envoi, mon probléme est que j'ai un signe = qui s'ajoute dans le mail que l'ont reçoit et je n'arrive pas à l'enlever (alors que si j'envoie le mail par outlook en html....il est OK)

    je créé mon memo avec le code HTML de base
    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
      if HTML1 <> '' then
      begin
        Memo1.Clear;
    //    Memo1.Lines.Add('<b>');
     
        AssignFile(unFichier,Chem1+HTML1); //affecte le handle
        Reset(unFichier);                 //ouvre le fichier
        nb :=0;
        repeat
          ReadLn(unFichier,uneLigne);      //lit une ligne
          Memo1.Lines.Add(uneligne);
        until Eof(unFichier);
        CloseFile(unFichier);
     
    //    Memo1.Lines.Add('</b>');
      end;
    je modifie le prénom dans un autre memo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Memo3.Clear;
          Memo3.lines := Memo1.Lines;
          Memo3.Text := StringReplace(Memo3.Text,PRML1,prenom,[rfIgnoreCase]);
    et j'envoie mon 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
     
    procedure TForm1.MailLance(Quoi : string; Maill : String);
    var
      IdMessage: TIdMessage;
      IdSMTP: TIdSMTP;
      Message: TStrings;
      i: Integer;
      Fichiers: Array Of String;
    begin
          IdMessage := TIdMessage.Create(nil); //création dynamique du composant
     
          IdMessage.From.Address := MailFrom;
     
          IdMessage.Recipients.Add.Address := Maill;
     
          IdMessage.ContentType := 'multipart/alternative'; //Message 'découpé' en plusieurs parties
     
          IdMessage.Subject := Quoi;
     
          Message := Memo3.Lines;
     
          With TIdText.Create(IdMessage.MessageParts, Message) Do
            ContentType := 'text/plain; charset=iso-8859-1';
     
          with TIdText.Create(IdMessage.MessageParts, Message) do
            ContentType := 'text/html; charset=iso-8859-1';
     
          IdSMTP := TIdSMTP.Create(nil) ; //Création dynamique du composant
     
          IdSMTP.Port := 25; //Le port SMTP standard…
          IdSMTP.Host := SMTPA;  //Le serveur auquel se connecter
     
          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;

    si quelqu'un à une idée pour me sauver !!!!

    MERCI d'avance.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 001
    Par défaut
    Où se trouve ce signe = ?
    Est-il au début du message ?
    Est-il à la fin message ?
    Est-il à l'endroit ou tu as remplacé le mot PRENOM par le prénom du client (avant, après,dedans) ?

    As tu vérifié si ce signe = est présent dans Memo1 ou dans Memo3 au moment de l'envoi ?

  3. #3
    Membre éprouvé
    Avatar de Félix Guillemot
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 149
    Par défaut
    Citation Envoyé par jcharles Voir le message
    Bonjour à Tous,

    j'ai un petit probléme, je suis sur un programme qui doit envoyer des mails en HTML automatiquement depuis un BDD à des clients selon certains critéres.
    je recupére donc le code HTML qui j'inclus dans un memo puis je modifie le mot 'PRENOM' par celui du client et je l'envoi, mon probléme est que j'ai un signe = qui s'ajoute dans le mail que l'ont reçoit et je n'arrive pas à l'enlever (alors que si j'envoie le mail par outlook en html....il est OK)

    je créé mon memo avec le code HTML de base
    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
      if HTML1 <> '' then
      begin
        Memo1.Clear;
    //    Memo1.Lines.Add('<b>');
     
        AssignFile(unFichier,Chem1+HTML1); //affecte le handle
        Reset(unFichier);                 //ouvre le fichier
        nb :=0;
        repeat
          ReadLn(unFichier,uneLigne);      //lit une ligne
          Memo1.Lines.Add(uneligne);
        until Eof(unFichier);
        CloseFile(unFichier);
     
    //    Memo1.Lines.Add('</b>');
      end;
    je modifie le prénom dans un autre memo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Memo3.Clear;
          Memo3.lines := Memo1.Lines;
          Memo3.Text := StringReplace(Memo3.Text,PRML1,prenom,[rfIgnoreCase]);
    et j'envoie mon 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
     
    procedure TForm1.MailLance(Quoi : string; Maill : String);
    var
      IdMessage: TIdMessage;
      IdSMTP: TIdSMTP;
      Message: TStrings;
      i: Integer;
      Fichiers: Array Of String;
    begin
          IdMessage := TIdMessage.Create(nil); //création dynamique du composant
     
          IdMessage.From.Address := MailFrom;
     
          IdMessage.Recipients.Add.Address := Maill;
     
          IdMessage.ContentType := 'multipart/alternative'; //Message 'découpé' en plusieurs parties
     
          IdMessage.Subject := Quoi;
     
          Message := Memo3.Lines;
     
          With TIdText.Create(IdMessage.MessageParts, Message) Do
            ContentType := 'text/plain; charset=iso-8859-1';
     
          with TIdText.Create(IdMessage.MessageParts, Message) do
            ContentType := 'text/html; charset=iso-8859-1';
     
          IdSMTP := TIdSMTP.Create(nil) ; //Création dynamique du composant
     
          IdSMTP.Port := 25; //Le port SMTP standard…
          IdSMTP.Host := SMTPA;  //Le serveur auquel se connecter
     
          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;

    si quelqu'un à une idée pour me sauver !!!!

    MERCI d'avance.
    Il faudrait voir un extrait du code HTML où il y a le prénom

    Déjà, ça me semble bizarre que tu ne mettes pas de quotes autour du prénom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Memo3.Text := StringReplace(Memo3.Text,PRML1,QuotedStr(prenom),[rfIgnoreCase]);

    Ton pb est dans le code HTML à mon avis

Discussions similaires

  1. [BCB6]TIdMessage et mail au format HTML
    Par Draner dans le forum C++Builder
    Réponses: 1
    Dernier message: 19/06/2008, 19h44
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. composant builder4 pour afficher du code html
    Par BranRuz dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/09/2002, 11h35
  4. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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