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

WinDev Discussion :

Structure Email UTF8 [WD17]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut Structure Email UTF8
    Bonjour,

    dans mon application j'envoie des emails, ça marche très bien, mais depuis peu j'ai basculé mon projet en UNICODE pour gérer certaines langues étrangères.

    Il me semble avoir lu que le type email ne peut pas gérer l'UTF8, en effet lors de l'envoie de mes messages, les caractères spéciaux apparaissent avec des ??? dans certains clients Mails, voir les accents sont remplacés par des caractères bizarres, voir des X avec des webmails comme laposte.net

    A noter que je construits mon mail avec une chaîne unicode affectée à la propriété .HTML de l'objet Mail.

    Est-il nécessaire de rajouter des informations d'encodage dans le header ?
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonMail.HTML = "<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8";/>" ...
    Cependant, ça empire le résultat
    Votre aide est la bienvenue sur la construction des mails à contenu Unicode

    Merci

    Exemple de contenu simplifié d'un 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
     
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8";/><style type="text/css">caption {color: white;background: #0066FF;} </style></head>
    <body>
    <p>
    <table border="1" align="left">
    <caption> L'évènement </caption>
    <tr>
    <th  align=center>Fête</th>
    <th align=center>éjécté</th>
    <th align=center>chère</th>
    <th align=center>Loïc</th>
    </tr>
    <tr>
    <td align=center>جهت تنوع</td>
    <td align=center>ö Ô n°</td>
    <td align=center>blabla</td>
    <td align=center>€ $</td>
    </tr>
    </table>
    </p>	
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Je ne pourrais pas répondre précisément au problème, n'ayant pas eu à gérer ce cas, mais je peux fournir quelques pistes.

    Déjà premièrement l'unicode et UTF8 sont deux choses bien différentes. Autant on pourra envoyer un mail en utf8 autant il ne sera pas possible, à ma connaissance, d'envoyer un mail en unicode.

    Il faut donc convertir le texte unicode vers de l'utf 8. Pour cela Windev propose une fonction ChaîneVersUTF8

    Donc la première étape sera de refaire le test en forçant comme tu l'as fait précedemment avec content="text/html; charset=utf-8" et en envoyant le reste du message en utf8.

    La deuxième solution que je vois, si Windev refuse d'envoyer le message en utf8, serait de directement communiquer avec le serveur smtp avec les fonctions SocketXXX de Windev. Ce sera un peu plus complexe, mais au moins on maîtrise l'envoi du mail de bout en bout. Le protocole SMTP n'est pas un protocole très complexe SMTP sur Wikipedia. Pour avoir le protocole complet si nécessaire, il faut chercher RFC SMTP.

    _________________
    [Edit]Dans la doc de pcsoft http://doc.pcsoft.fr/fr-FR/?10000187...riable&q=email, il est précisé :
    Il est possible d'utiliser des caractères non latins dans les propriétés suivantes : ..Sujet, ..Message, ..Catégorie, ..AdresseExpéditeur, ..Expéditeur, ..ID.
    il semblerait donc possible que l'utf8 passe avec les fonctions windev.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Par défaut
    Je n'ai pas lu tous les messages mais je pense que le problème est le même que celui-ci (qui a été résolu) :
    http://www.developpez.net/forums/d12...-mail-chinois/

    Note : Je sais que ça va à l'encontre de toute les règles de répondre à un message sans le lire et je m'en excuse.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut
    Vous répondez parfaitement à ma question, je vous remercie!

    Donc je confirme qu'il faut débuter le corps du mail par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8";/>
    Et après avoir construit le mail dans une chaîne sEmailMsg faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonMail..HTML= ChaîneVersUTF8(sEmailMsg)
    Cependant, j'ai un autre problème :
    Le sujet du mail persiste à ne pas m'afficher mes caractères spéciaux.
    En cherchant un peu j'ai trouvé que les sujets de mail ont leur propre header et qu'il est possible de le forcer en utf8 avec (http://ncona.com/2011/06/using-utf-8...-mail-subject/):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =?utf-8?Q?Mon titre qui contient des caractères spéciaux?=
    Cependant, je n'arrive à rien pour le moment, j'essaye de convertir mon sujet (contenu dans une chaîne UNICODE) avec ChaîneVersUF8 en intégrant ces caractères dans la conversion, ou en ne les intégrant pas, voir même pas faire de conversion, pas de résultat positif pour le moment...

    Encore une fois, si une âme charitable passe par ce topic...

    Merci

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Par défaut
    Je pense qu'en faisant un EmailConstruitSource() avant l'envoie de l'email et en regardant le contenu de Email.Source, il y aura encore du "iso-8859-1".

    Dû le fait dans le topic indiqué de faire un remplace de "iso-8859-1" par "utf-8".

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut
    En fait en faisant EmailConstruitSource(MonMail) je vois que le UTF8 du sujet est bien pris en compte lorsque j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =?utf-8?Q?Mon titre qui contient des caractères spéciaux?=
    mais en revanche, il doit y avoir une conversion implicite de ma chaîne UNICODE vers du ANSI, puisque mes caractères spéciaux sont remplacés par des ???

    Savez-vous comment je peux contourner ce problème ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sujet email encodé UTF8 avec point d'interrogation
    Par eprevot dans le forum Langage
    Réponses: 4
    Dernier message: 04/12/2013, 22h15
  2. [WD14] Structure Email Fichiers Attachés
    Par no_me_entero dans le forum WinDev
    Réponses: 1
    Dernier message: 25/05/2012, 11h40
  3. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 15h32
  4. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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