Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2007, 13h54   #1
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Par défaut [1.02] [Zend_Mail] : message reçu avec des =0A

Bonjour,

Voilà, je teste depuis peu la classe Zend_Mail et je rencontre un problème.

En effet, lorsque j'envoie des mails avec cette classe, certains clients Mail recoivent le message avec des =0a (code du saut de ligne) à la place des sauts de ligne.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$message = "
Bonjour,
Ceci est un test.
Cdlt.
";
 
require_once 'Zend/Mail.php';
 
$mail = new Zend_Mail();
$mail->setBodyText($message);
$mail->setFrom("toto@titi.com","toto");
$mail->addTo("contact@momo.com");
$mail->setSubject("TEST");
$mail->send();
Quand j'envoie sur ma boite gmail, le message s'affiche correctement mais sur le webmail d'ovh j'ai le message suivant :
Code :
1
2
 
=0ABonjour,=0ACeci est un test.=0ACdlt.=0A
J'ai essagé d'envoyer le mail en unicode avec $mail = new Zend_Mail("utf-8"); mais ça ne marche pas mieux.

Est-ce que l'un d'entre vous aurait une idée ?

Merci d'avance.
kaboume
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h07   #2
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
J'ai eu un problème d'encodage également, Hotmail ne semble pas gérer l'UTF, mais sur Mozilla Thunderbird, aucun problème. J'ai donc décider de convertir le message en ISO, et ça marche.

Par contre, pour OVH, je vois pas...

Bonne chance.
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h19   #3
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Ok merci pour ta réponse.

Mais comment as-tu converti le message en ISO ? Pas défaut, il n'est pas déjà en ISO ?
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h23   #4
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
En fait, ça dépend. Si tu enregistres ton fichier php en ISO, le texte sera en ISO. Mais ton fichier est enregistré en UTF, il faut convertir le texte du message en ISO, je fais comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
$message = 'message en ISO, les accents fonctionnent, é à  è';
$titre = "Il faut convertir l'objet du message également !";
 
Zend_Loader::loadClass('Zend_Mail');
$mail = new Zend_Mail();
$mail->setFrom('***', '***');
$mail->addTo($email, $email);
$mail->setSubject(utf8_decode($titre));
$mail->setBodyHtml(utf8_decode($message));
$mail->send();
Tu comprends pourquoi il faut décoder le texte ? Si tu as besoin de plus d'explication n'hésites pas, je me souviens que je n'avais pas très bien saisi la première fois.

Bon courage
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h27   #5
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Meric pour ta réponse, mais ca ne marche pas mieux avec utf8_decode
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 14h32   #6
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
Il faut vérifier que ton fichier est en UTF, si tu as fait ton site en ISO, mon astuce ne sert strictement à rien, au contraire, ça pourrait nuire à la présentation dans les mails

Quoi qu'il en soit, ton problème ne ressemble pas à un problème d'encodage, enfin, pas de ceux que je connais.

Essais de virer les espaces et caractères spéciaux pour voir
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 15h08   #7
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Mon fichier était en ISo, j'ai quand mêem essayé au cas où.

Bon ben c'est ptete le Zend_Mail qui est buggé et qui envoie des mails qui ne sont pas compréhensibles par tous les webmails.

Pas de chance!
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 17h00   #8
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
A mon avis il ne s'agit pas d'un bug dans Zend_Mail, mais d'un problème classique de CRLF.

Tu programmes probablement sous Windows (ou Mac) et tes sauts de ligne sont donc au format CRLF (\r\n ou en hexa : 0x0D, 0x0A) ou CR (\r, 0x0D).

Ces formats ne dépendent pas du jeu de caractères. Il est possible que certains webmails ne prennent pas en considération ces formats de saut de ligne.

Comme le préconise justement la documentation du ZF, les fichiers PHP doivent être au format (conventionnel) Unix, autrement dit les CRLF ou CR doivent être remplacés par des LF.

La plus part des éditeurs disposent d'une fonctionnalité pour convertir les fichiers ou les rédiger dans un format spécifique.

Bye
__________________
Mes articles DVP : http://jp-grossglauser.developpez.com
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 17h35   #9
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
Merci Guardian pour ta réponse mais toujours coincé.

Je développe sous Zend Studio sous Windows et les fichiers sont sur Linux (travail en FTP).

J'ai essayé des str_replace des \n et des \r en \n ou \r et rien n'y fait.

Le message est récupéré à partir d'un textarea posté dans un formulaire.

Le webmail d'OVh est RoudCubeMail.

Au passage, y'a pas en PHP une constante qui représente un saut de ligne (équivalent de VBcrl en ASP ?)
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 18h13   #10
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
Citation:
Envoyé par kaboume Voir le message
Merci Guardian pour ta réponse mais toujours coincé.

Je développe sous Zend Studio sous Windows et les fichiers sont sur Linux (travail en FTP).

J'ai essayé des str_replace des \n et des \r en \n ou \r et rien n'y fait.

Le message est récupéré à partir d'un textarea posté dans un formulaire.

Le webmail d'OVh est RoudCubeMail.

Au passage, y'a pas en PHP une constante qui représente un saut de ligne (équivalent de VBcrl en ASP ?)



Il n'y a pas de constante PHP équivalente à VBcrl. (Voir : Liste des constantes pré-définies ).

Le problème ne vient-il pas du client webmail, de sa configuration ? tu as essayé (je suppose) avec d'autres interfaces comme Horde ou autres (toujours sous le webmail OVH donc) Qu'en est-il ?

Je pense toujours qu'il s'agit d'un problème de CRLF.

Je vais voir si je peu le reproduire le bug chez moi... Toujours intéressant à savoir !
__________________
Mes articles DVP : http://jp-grossglauser.developpez.com
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2007, 19h00   #11
Membre habitué
 
Inscription : juin 2004
Messages : 296
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2004
Messages : 296
Points : 147
Points : 147
J'ai essayé avec 3 webmails d'OVh dont horde et squiremail et même chose.

C'est quand même bizarre que je sois le premier à remarquer ça!
kaboume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 09h02   #12
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
J'avais eu le même problème, je l'ai réglé en spécifiant l'encodage de mon body comme suit :
Code :
$oMail->setBodyHtml($votreBodyEnHtml, 'UTF-8', Zend_Mime::ENCODING_8BIT );
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h14.


 
 
 
 
Partenaires

Hébergement Web