Page 1 sur 2

[R] Envoi de mail avec accents

Posté : lun. 19 mai 2014 14:18
par lokomass
Bonjour à tous,

J'utilise depuis longtemps l'envoi de mail AutoIt, et je viens de me rendre compte que depuis toujours ou presque, j'ai un souci sur les accents dans le corps du mail (uniquement le corps, dans le sujet c'est ok pour les accents)...

Les accents sont remplacés par un autre caractère : è devient h et é devient i ???

Voici la fonction que j'utilise, est-ce normal ? Merci pour votre aide
► Afficher le texte

Re: [..] Envoi de mail avec accents

Posté : lun. 19 mai 2014 15:04
par jchd
Regarde ce post.

Re: [..] Envoi de mail avec accents

Posté : lun. 19 mai 2014 21:31
par lokomass
J'ai essayé de rajouter ces deux lignes comme dans ta page :

Code : Tout sélectionner

$as_Body = BinaryToString(StringToBinary($as_Body,4),1)
$objEmail.Fields.Item ("urn:schemas:mailheader:Content-type") = 'text/plain;charset="utf-8"'
On dirait que c'est un peu mieux j'ai des :

Code : Tout sélectionner

corpèèès du méssaà à ge
Mais pas encore mes accents propres...

Re: [..] Envoi de mail avec accents

Posté : lun. 19 mai 2014 22:12
par jguinch
Regarde ici aussi

Re: [..] Envoi de mail avec accents

Posté : lun. 19 mai 2014 22:14
par lokomass
Merci je suis tombé dessus entre temps, j'ai eu beau essayé de modifier en iso ou utf-8 ça change rien... Retour comme au début

Re: [..] Envoi de mail avec accents

Posté : lun. 19 mai 2014 22:59
par jchd
Avec quoi visualises-tu le corps du message ? Ce que tu montres est bien de l'UTF-8 mais pas interprété en tant que tel.

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 07:52
par lokomass
J'utilise Thunderbird.
J'ai beau retester pour refaire les mêmes accents je ne retrouve pas cette forme :

Code : Tout sélectionner

corpèèès du méssaà à ge

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 08:18
par aulus
Bonjour,

Faites une copie de Inet.au3. Modifiez la ligne 145 comme ceci :

Code : Tout sélectionner

"Content-Type: text/plain; charset=[b]iso-8859-1[/b]" & @CRLF & _
Changez le nom du fichier et incluez-le dans votre programme en remplacement de Inet.au3

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 08:27
par jchd
Ca devrait fonctionner : ThunderBird est "Unicode aware". Qu'y a-t-il dans les en-têtes ?

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 09:14
par lokomass
aulus a écrit :iso-8859-1
J'ai essayé en mettant iso-8859-1 ou utf-8 mais ça n'a rien changé dans les deux cas.
Pour l'entête de Thunderbird je regarde tout à l'heure.
C'est fou que ça soit si compliqué quand même, et qu'il n'y ait pas de souci dans le titre.

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 10:22
par jguinch
Tu n'aurais pas trifouillé dans les paramètres de Thunderbird ?
Dans TB, tu peux aller dans Affichage > Encodage des caractères puis choisir l'encodage approprié

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 12:50
par aulus
lokomass a écrit : J'ai essayé en mettant iso-8859-1 ou utf-8 mais ça n'a rien changé dans les deux cas.
Avez-vous fait ce changement dans le fichier Inet.au3 et installé le fichier modifié dans le dossier de votre programme avec référencement à celui-ci ?
Chez moi, ça marche nickel.

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 14:13
par lokomass
J'ai modifié celui du répertoire include

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 15:31
par jchd
Mauvaise idée : tout changement sera perdu (et oublié) après mise à jour ou réinstallation.

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 16:50
par lokomass
Comment dois-je faire pour qu'un autre Inet.au3 soit pris en compte que dans le répertoire include ?
C'est pas pour ça que ça ne fonctionne pas, si ?

Re: [..] Envoi de mail avec accents

Posté : mar. 20 mai 2014 20:37
par aulus
Faites une copie de Inet.au3 que vous installez dans le dossier de votre programme.
Modifiez la ligne 145 comme indiqué plus haut.
Renommez le fichier, par exemple : _Inet.au3
Dans votre programme, déclarez : #include <_INet.au3>
Supprimez la ligne #include <INet.au3>

Re: [..] Envoi de mail avec accents

Posté : mer. 21 mai 2014 07:54
par lokomass
J'ai ré-ouvert on fichier Inet.au3 et la modif dont tu me parles se situait ligne 177, j'ai donc commencé par mettre à jour autoit.
Une fois ceci fait, j'ai suivi tes instructions, mais toujours le même résultat cette fois-ci en essayant avec utf-8 ou iso-8859-1, je vois ce message :

Code : Tout sélectionner

corpC(C(C(s du mC)ssaC C ge
Au lieu de :

Code : Tout sélectionner

corpèèès du méssaààge
Si j'enlève ces deux lignes :

Code : Tout sélectionner

$as_Body = BinaryToString(StringToBinary($as_Body,4),1)
$objEmail.Fields.Item ("urn:schemas:mailheader:Content-type") = 'text/plain;charset="utf-8"'
J'obtiens :

Code : Tout sélectionner

corphhhs du missa``ge
En gros toutes mes modifs dans Mail.au3 (Inet.au3 renommé) ne changent rien.
Autre point qui n'a rien à voir, souvent j'avais l'erreur "ObjMail.send", apparemment du à :

Code : Tout sélectionner

$s_SmtpServer = _INetGetSource("http://www.autoitscript.fr/smtp.php")
J'ai mis le smtp en dur et plus d'erreur.

Voici le code que j'utilise :
► Afficher le texte

Re: [..] Envoi de mail avec accents

Posté : mer. 21 mai 2014 09:59
par aulus
Voici le mien, pour comparaison :
► Afficher le texte

Re: [..] Envoi de mail avec accents

Posté : mer. 21 mai 2014 10:51
par lokomass
Merci, je vais tester ton script à midi.
Par contre, il permet l'envoi de PJ ?
Et concernant mon "souci aléatoire" sur _INetGetSource, est-ce plus judicieux de le mettre en dur du coup ? Il m'ait déjà arrivé de perdre 1 mail ou 2, surement à cause de ça je pense.

Re: [..] Envoi de mail avec accents

Posté : mer. 21 mai 2014 18:34
par lokomass
J'ai testé ton script, j'ai des � à la place des accents maintenant.
J'ai essayé en mettant "utf-8" et "iso-8859-1" mais j'ai toujours des �.
De plus, est-ce possible de mettre une pièce jointe avec ?