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

VBScript Discussion :

Encodage de caractères dans un mail au format HTML


Sujet :

VBScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 71
    Points
    71
    Par défaut Encodage de caractères dans un mail au format HTML
    Bonjour,

    Passé d'un système Windows 2000 à Windows 2003, j'ai changé de librairie pour l'envoi de message (CDONT à CDO).

    Depuis l'encodage de caractère, dans mes mails de type HTML, tel que le signe "€" ne marche pas. Les utilisateurs reçoivent dans leur mail "?"

    J'ai mis dans le <HEAD> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <HEAD><META http-equiv='Content-Type' 'Content-Type: text/html; charset=UTF-8'></HEAD>
    j'ai essayé les options :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .MimeFormatted = True
    .GetStream.Charset = cdoISO_8859_15
    .BodyPart.Charset = cdoISO_8859_15
    .BodyPart.ContentTransferEncoding = "base64"
    ça ne change rien.

    Mon script :
    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
     
    ' Send by connecting to port 25 of the SMTP server.
    Dim iMsg 
    Dim iConf 
    Dim Flds 
    Dim strHTML
     
    Const cdoSendUsingPort = 2
     
    ' TODO: Change these values to appropriate values for your environment
    Const MySMTPServer = "monserveur" ' Name or IP address of SMTP server
    Const MyToAddress = "mail@server.com" ' SMTP address to send message to
    Const MyFromAddress = "monserveur@server.com" ' SMTP address to send message from
    ''''''''''''''''''''''''''''''
     
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
     
    Set Flds = iConf.Fields
    ' Set the CDOSYS configuration fields to use port 25 on the SMTP server.
     
    With Flds
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
    'Done: Enter name or IP address of remote SMTP server.
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = MySMTPServer 
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    'ToDo: Enter login/password
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
       .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
       .Update
    End With
    ' Build HTML for message body.
    strHTML = "<HTML>"
    strHTML = strHTML & "<HEAD><META http-equiv='Content-Type' 'Content-Type: text/html; charset=UTF-8'></HEAD>"
    strHTML = strHTML & "<BODY>"
    strHTML = strHTML & "<b> This is the test HTML message body</b></br>&euro;.</br>€"
    strHTML = strHTML & "</BODY>"
    strHTML = strHTML & "</HTML>"
     
    ' Apply the settings to the message.
    With iMsg
       Set .Configuration = iConf
       .To = MyToAddress
       .From = MyFromAddress
       .Subject = "This is a test CDOSYS message (Sent via Port 25)"
    .HTMLBody = strHTML
       .Send
    End With
    ' Clean up variables.
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
     
    MsgBox "Mail Sent!"
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Peut être que ton body est encodée en encodage Windows (1252) qui lui n'est pas UTF8.
    J'avais eu un problème d'encodage une fois pour un fichier transférer en ftp sur un serveur linux et généré à la base sur un serveur windows.
    Le fichier était encodé en 1252 et j'ai dû le convertir en UTF8 pour que cela fonctionne.
    Je ne sais pas si cel peut t'aider.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 71
    Points
    71
    Par défaut
    Tour d'abord, merci pour ta réponse.

    Par contre je ne vois pas de quoi tu parles quand tu dis
    en encodage Windows (1252) qui lui n'est pas UTF8
    Où est ce que tu peux voir cela et comment peux tu le modifier ?

    Merci !

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Où est ce que tu peux voir cela et comment peux tu le modifier ?
    De la même façon que tu peux déterminer et modifier l'encodage d'un fichier UTF8.
    Moi perso j'utilise notepad++ ou je me fais un programme c# qui test pour moi.

    Lorsque tu crée un fichier sous windows, si tu ne précises pas d'encodage précis lors de sa sauvegarde, son encodage par défaut devrait être 1252. Cet encodage ne respecte pas le standard UTF8 et donc souvent cela pose un problème lorsque tu essayes de lire ce même fichier sur un autre OS que Windows (surtout sur les caractères accentués et spéciaux).
    Mais si à la base tu force l'enregistrement du fichier en encodage UTF8, tu n'as plus ce problème.

    Bien sûr je te parle de fichier, mais je pense que l'on peut appliquer le même raisonnement pour le body de ton mail.
    Je pense que CDONT devait appliqué un encodage spécial au body du mail mais de façon différentes de tes tentatives.

    Je n'ai pas de réponse à ton problème, j'essayais juste de te mettre sur la voix de cette encodage Windows qui est particulié.

    Peut être qu'en mettant charset=1252 (ou en ne le mettant pas du tout) dans ta balise Head cela marcherais mieux.

Discussions similaires

  1. VBA CDO Police de caractère dans un Mail
    Par tieumss dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/05/2007, 12h20
  2. [HTML] Envoyer un mail au format HTML (dans href)
    Par Mcfly123 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/04/2007, 09h13
  3. [MySQL] Encodage des caractères dans un fichier texte
    Par louveteau02 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/04/2007, 10h41
  4. [Mail] Encodage des caractères pour les mails
    Par Cr@zyDeep dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2007, 20h11

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