Comment envoyer mail avec un text gras, italique ou souligné

vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 10 janv. 2009 à 22:56
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 12 janv. 2009 à 19:19
Bonjour, j'ai mon programme qui envoi des mails et ça marche assez bien (Delphi 7 / Indy) !

Mon probléme toutefois c'est que le corps de mon message qui est saisi dans un RichEdit1 peut contenir des caracteres en gras, iltalique ou souligné selon le bon vouloir de l'expediteur mais ces caracteres ne sont semble t-il pas pris en compte au moment de l'envoi puisque le destinataire les recois en texte normal.

Je vous joins ci-apres mon code, si quelqu'un peut m'aider à l'améliorer pour prendre en compte ceci je lui en serais bien reconnaissant, merci par avance.

var IdMessage: TIdMessage;
var IdSMTP: TIdSMTP;
var Message: TStrings;
var Destinataire : String;


begin


// Envoi d'un message


IdMessage := TIdMessage.Create(nil); //création dynamique du composant
IdMessage.From.Address := edit1.Text;  // EXPEDITEUR


// DESTINATAIRE
 IdMessage.Recipients.Add.Address := listbox3.Items[listbox3.Itemindex] ;


IdMessage.Subject := Edit5.Text; // OBJET DU MESSAGE


IdMessage.ContentType := 'multipart/alternative'; //Message 'découpé' en plusieurs parties


Message := RichEdit1.Lines; // CORPS DU MESSAGE
  
//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';


//On passe ensuite à l'envoi du message:
IdSMTP := TIdSMTP.Create(nil) ; //Création dynamique du composant
IdSMTP.Port := StrToInt(form2.edit49.text); //Le PORT SMTP standard...
IdSMTP.Host := Form2.Edit50.Text;  //Le SERVEUR SMTP auquel se connecter


//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 ShowMessage(e.Message);
    end;
  finally
    IdSMTP.Disconnect;
    IdSMTP.Free;
    IdMessage.Free;
  end;

8 réponses

vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
11 janv. 2009 à 13:35
Je viens de me rendre compte que j'ai le même probléme avec les "é", à la reception j'ai un carré à la place du é.

C'est vraiement bizarre soit c'est ma méthode d'envoi qui pose souci, soit c'est la maniére dont je déclare ma variable Message ou autre chose ...
0
Utilisateur anonyme
11 janv. 2009 à 22:11
Salut ,
Ca n'a rien de bizarre : Un mail n'est censé contenir que des caractères ASCII.
Voir les charset et le codage en base64 des mails pour solutionner ton problème
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 janv. 2009 à 22:13
bonsoir;
tout semble ok..
essaie tout de même de mettre uniquement :
ContentType := 'text/html';

cantador
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
11 janv. 2009 à 23:22
Merci de ta suggestion mais apres avoir essayé c'est toujours pareil, je le recois en texte normal.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 janv. 2009 à 23:36
Ne mélange pas tout : ca m'étonnerait que ton client pop comprenne les attributs de fonte et de mise en forme de ton RichEdit. Si on permet le html dans les mails c'est bien pour une raison . En ce qui concerne les accents : vérifie que ton client pop est bien configuré et si c'est le cas regarde quel est le type d'encodage utilisé par défaut par Indy : Ca se trouve il n'est pas définit en Base 64 (Le type d' encodage est précisé dans le header des mails que tu recois).
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
12 janv. 2009 à 00:11
Quand j'envoi un mail de mon appli avec du texte gras, italique, souligné, je le recois en texte normal non seulement sur mon appli mais aussi sur d'autres clients de messagerie que j'ai testé (thunderbird, webmail...), je pense donc que c'est un probleme au niveau de l'envoi pas de la reception.

"Ca m'étonnerait que ton client pop comprenne les attributs de fonte et de mise en forme de ton RichEdit. Si on permet le html dans les mails c'est bien pour une raison"
Par rapport au code que j'ai indiqué ci-avant qu'est-ce que je dois alors ajouter pour que ce soit pris en compte ?
0
Utilisateur anonyme
12 janv. 2009 à 08:23
En ce qui concerne les accents : Essaye avec une simple string genre 'éèê' voir ce que cela donne.

Pour la mise en forme : oublie le TRichEdit et tourne toi vers un composant qui permet de formater ton texte en HTML (Par contre va falloir le coder  ou casser le porte-monnaie )
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
12 janv. 2009 à 19:19
ok je vais regarder ça, merci par beaucoup en tous cas
0
Rejoignez-nous