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 :

Envoi de message avec Signature


Sujet :

Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Envoi de message avec Signature
    Bonjour à toutes et à tous,

    J'ai besoin dans mon application de permet à l'utilisateur de retourner par e-mail certain information.

    J'utilise pour cela ceci :
    http://delphi.developpez.com/faq/?pa...rmailoutlookv2
    Ou même
    http://delphi.developpez.com/faq/?pa...estionArticle3

    La problèmatique ce pause sur le Body (le corps du message).

    Il existe HTMLBody qui permet d'envoyé un essage sous form HTML.

    Le problème c'est quoi que je fasse la signature disparait. J'ai lu enormément de lien sur le sujet ici et ailleur. Mais je suis toujours bloqué.

    Voilà ce que j'ai essayé :

    UnMail.Body := 'Corps du message envoyé'+#13#10 + UnMail.HTMLBody;
    ou vMail.Body
    UnMail.HTMLBody := Replace(UnMail.HTMLBody, "</BODY>", sigstring & "</BODY>")
    ou vMail.HTMLBody

    J'ai également essayer de placer :
    UnMail.Display; Avant le HTMLBody ou après, si c'est avant j'ai un message d'erreur [Fonction incorrecte] si c'est après aucun résultat.

    Voici la vrai procédure que j'utilise actuellement :

    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
    64
    65
    ...
    type
    //Enumération qui décrit le niveau de priorité du mail
      enumImportance=(Bas=olImportanceLow,Normal=olImportanceNormal,Haut=olImportanceHigh); 
     
    //Structure qui décrit entièrement le mail à envoyer 
      TEmail = record 
        dDateRecept   : TDateTime; 
        dDateCreation : TDateTime; 
        sSenderName   : String; 
        sSenderMail   : String; 
        sCC           : String; 
        sDestinataires : String; 
        sSujet        : String; 
        sContenu      : String; 
        iPriorite     : enumImportance;
        iSize         : integer;  // en octet 
        iNbPiecesJointes      : integer; 
        tCheminPiecesJointes  : array of string; 
      end;
    ...
       function CreerEmail(Mail : TEmail): boolean;
    ...
       private
    ...
     
    Implementation
     
      Result := true; 
      try 
        //Création du mail
        vMail  := vApplication.CreateItem(0);
        //Ajout des destinataires 
        //On pourra éventuellement tester le format des adresses
        //ainsi que s'assurer que celles-ci sont séparées par un ;
        vRecipient := vMail.Recipients.Add(Mail.sDestinataires); 
        vRecipient.Type := 1; 
        if Mail.sCC <> '' then 
        begin 
          lTemp := TStringList.Create; 
          lTemp.Delimiter := ';'; 
          lTemp.DelimitedText := Mail.sCC; 
          for i := 0 to lTemp.Count - 1 do 
          begin 
            vRecipient := vMail.Recipients.Add(lTemp.Strings[i]); 
            vRecipient.Type := 2; 
          end; 
          lTemp.Free; 
        end; 
        //Ajout du sujet
        vMail.Subject     := Mail.sSujet;
        // Ajout du message
        vMail.Body  := Mail.scontenu;
        //Ajout de la priorité
        vMail.Importance  := Integer(Mail.iPriorite);
        //Ajout de pièce jointe
        for i := 0 to Mail.iNbPiecesJointes -1 do 
        begin 
          vMail.Attachments.Add(Mail.tCheminPiecesJointes[i]); 
        end; 
        //Affichage de l'Email 
        vMail.Display; 
      except 
        Result := false; 
      end;

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    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 : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Je n'ai jamais utilisé ce composant alors je me trompe peut-être mais en tout cas, ce code ressemble beaucoup à un fonction que j'ai pu voir en PHP

    Tout comme tu as une méthode pour ajouter des pièces jointes, tu dois avoir une méthode pour ajouter des signatures

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par popo Voir le message
    Je n'ai jamais utilisé ce composant alors je me trompe peut-être mais en tout cas, ce code ressemble beaucoup à un fonction que j'ai pu voir en PHP

    Tout comme tu as une méthode pour ajouter des pièces jointes, tu dois avoir une méthode pour ajouter des signatures
    Salut,

    As-tu une idée de la méthode, je suis aller voir sur msdn, mais j'ai rien vue.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 426
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 426
    Points : 1 326
    Points
    1 326
    Par défaut
    @ BuzzLeclaire

    Et si tu le places ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     for i := 0 to Mail.iNbPiecesJointes -1 do 
        begin 
          vMail.Attachments.Add(Mail.tCheminPiecesJointes[i]); 
        end; 
        //Affichage de l'Email 
        vMail.Display; 
    vMail.HTMLBODY := 'Signature' ;  
     except 
        Result := false; 
      end;
    Je sais que la signature doit se placer après le display.

    @+,

    Cincap

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par cincap Voir le message
    @ BuzzLeclaire

    Et si tu le places ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     for i := 0 to Mail.iNbPiecesJointes -1 do 
        begin 
          vMail.Attachments.Add(Mail.tCheminPiecesJointes[i]); 
        end; 
        //Affichage de l'Email 
        vMail.Display; 
    vMail.HTMLBODY := 'Signature' ;  
     except 
        Result := false; 
      end;
    Cincap
    Salut cincap,

    J'ai déjà fais ce genre de test, effectivement il faut le faire apres un display

    Je sais que la signature doit se placer après le display.
    J'avais mis cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        vMail.Display;
        vMail.HTMLBody := 'khiu' + #13+#10+ vMail.HTMLBody;
    En fait le HTMLBody comporte la signature, la si tu veux le message s'ouvre je vois la signature sans le 'khiu' et ensuite il me génére une erreur fonctions incorrecte comme à chaque fois.

    Ce qu'il faudrait faire d'avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vMail.HTMLBody := 'mon message' + #13+#10 + vMail.Signature
    MErci @+

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 426
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 426
    Points : 1 326
    Points
    1 326
    Par défaut
    @ BuzzLeclaire,

    Regarde un peux si dans ce code tu ne trouves pas quelque chôse :

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    uses ComObj; {Delphi 5} 
     
    procedure TForm1.Button1Click(Sender: TObject); 
    const 
      // OlItemType constants 
      olMailItem = 0; 
      olAppointmentItem = 1; 
      olContactItem = 2; 
      olTaskItem  = 3; 
      olJournalItem = 4; 
      olNoteItem = 5; 
      olPostItem = 6; 
      // OlAttachmentType constants 
      olByValue = 1; 
      olByReference = 4; 
      olEmbeddedItem = 5; 
      olOLE = 6; 
     
    var 
      myOlApp, myItem, myRecipient, myAttachments: OleVariant; 
    begin 
      // VBScript file to create a mail and add an attachment 
      myOlApp := CreateOLEObject('Outlook.Application'); 
      myItem := myOlApp.CreateItem(olMailItem); 
      myItem.Subject := 'This is the Subject'; 
      myRecipient := myItem.Recipients.Add('recipientaddress@recipienthost.com'); 
      myItem.Body := #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + 'Hello,' + #13; 
      myItem.Body := myItem.Body + 'This code created this message and '+ 
                                   ' sent it and I didn''t even have' + #13; 
      myItem.Body := myItem.Body + 'to click the send button!!!' + #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + 'If you have any more problems, let me know' + 
    #13; 
      myItem.Body := myItem.Body + 'rename to blah.vbs and run like this:' + #13; 
      myItem.Body := myItem.Body + 'wscript c:\blah.vbs' + #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + 'Eddie' + #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + 'const'+ #13; 
      myItem.Body := myItem.Body + '  // OlItemType constants'+ #13; 
      myItem.Body := myItem.Body + '  olMailItem = 0;'+ #13; 
      myItem.Body := myItem.Body + '  olAppointmentItem = 1;'+ #13; 
      myItem.Body := myItem.Body + '  olContactItem = 2;'+ #13; 
      myItem.Body := myItem.Body + '  olTaskItem  = 3;'+ #13; 
      myItem.Body := myItem.Body + '  olJournalItem = 4;'+ #13; 
      myItem.Body := myItem.Body + '  olNoteItem = 5;'+ #13; 
      myItem.Body := myItem.Body + '  olPostItem = 6;'+ #13; 
      myItem.Body := myItem.Body + '  // OlAttachmentType constants'+ #13; 
      myItem.Body := myItem.Body + '  olByValue = 1;'+ #13; 
      myItem.Body := myItem.Body + '  olByReference = 4;'+ #13; 
      myItem.Body := myItem.Body + '  olEmbeddedItem = 5;'+ #13; 
      myItem.Body := myItem.Body + '  olOLE = 6;'+ #13; 
      myItem.Body := myItem.Body + #13; 
      myItem.Body := myItem.Body + 'var'+ #13; 
      myItem.Body := myItem.Body + '  myOlApp, myItem, myRecipient, myAttachments: 
    OleVariant;'+ #13; 
      myItem.Body := myItem.Body + 'begin'+ #13; 
      myItem.Body := myItem.Body + '  myOlApp := 
    CreateObject(''Outlook.Application'')' + #13; 
      myItem.Body := myItem.Body + '  myItem := myOlApp.CreateItem(olMailItem)' + 
    #13; 
      myItem.Body := myItem.Body + '  myItem.Subject := ''This is the Subject''' + 
    #13; 
      myItem.Body := myItem.Body + '  myItem.Body := ''This is the body''' + #13; 
      myItem.Body := myItem.Body + '  myRecipient := myItem.Recipients.Add 
    ('recipientaddress@recipienthost.com')' + #13; 
      myItem.Body := myItem.Body + '  myAttachments := myItem.Attachments' + #13; 
      myItem.Body := myItem.Body + '  // Now let''s attach the files...' + #13; 
      myItem.Body := myItem.Body + '  myAttachments.Add ''C:\blah.txt'', olByValue, 
    1, ''Blah.txt Attachment''' + #13; 
      myItem.Body := myItem.Body + '  myItem.Send' + #13; 
      myItem.Body := myItem.Body + '  myOlApp := VarNull;' + #13; 
      myItem.Body := myItem.Body + '  myItem := VarNull;' + #13; 
      myItem.Body := myItem.Body + '  myRecipient := VarNull;' + #13; 
      myItem.Body := myItem.Body + '  myAttachments := VarNull;' + #13; 
      myItem.Body := myItem.Body + 'end;' + #13; 
      // Now let's attach the files... 
      myAttachments := myItem.Attachments; 
      myAttachments.Add('C:\blah.txt', olByValue, 1, 'Blah.txt Attachment'); 
      myItem.Send 
      myOlApp := VarNull; 
      myItem := VarNull; 
      myRecipient := VarNull; 
      myAttachments := VarNull; 
    end;
    ou ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Vmail.HTMLBody := '<HTML><BODY>Test</BODY></HTML>';
    @+,

    Cincap

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    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 : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Cela vient de faire tilt dans mon esprit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vMail.HTMLBody := 'mon message' + #13+#10 + vMail.Signature
    VMail.HTMLBody attend certainement du HTML

    As-tu essayé de remplacer le #13#10 par la balise <br/> ou encore <br> car ce n'est pas sûr que le XHTML soit valide avec cet objet

Discussions similaires

  1. Envoi de mail avec signature Outlook.
    Par Richard_35 dans le forum VBA Outlook
    Réponses: 11
    Dernier message: 27/03/2015, 16h19
  2. envoi de messages avec MSN-Hotmail
    Par bassim dans le forum Internet
    Réponses: 1
    Dernier message: 24/04/2007, 10h36
  3. Envoi de message avec TServerSocket
    Par Dave48 dans le forum Développement
    Réponses: 2
    Dernier message: 23/03/2007, 11h16
  4. envoi de message avec la touche "enter"
    Par viny dans le forum Flash
    Réponses: 5
    Dernier message: 04/02/2007, 09h31
  5. Envoi de Mail avec Signature HTML
    Par Yaz dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 07/08/2006, 10h44

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