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

Autres composants PHP Discussion :

[1.02] [Zend_Mail] : message reçu avec des =0A


Sujet :

Autres composants PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    Par défaut
    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 ?

  4. #4
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    Par défaut
    Meric pour ta réponse, mais ca ne marche pas mieux avec utf8_decode

  6. #6
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    Par défaut
    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!

  8. #8
    Invité
    Invité(e)
    Par défaut
    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
    Dernière modification par Invité ; 28/10/2007 à 17h18.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    Par défaut
    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 ?)

  10. #10
    Invité
    Invité(e)
    Par défaut
    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 !

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194
    Par défaut
    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!

  12. #12
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    J'avais eu le même problème, je l'ai réglé en spécifiant l'encodage de mon body comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oMail->setBodyHtml($votreBodyEnHtml, 'UTF-8', Zend_Mime::ENCODING_8BIT );

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

Discussions similaires

  1. Gestion des messages envoyés avec une 2ème boite
    Par Cybher dans le forum Outlook
    Réponses: 1
    Dernier message: 09/10/2008, 10h30
  2. Mes message dans windows mail s'affichent avec des signes bizarres
    Par diass dans le forum Outlook Express / Windows Mail
    Réponses: 1
    Dernier message: 14/08/2008, 03h20
  3. message d'activation des macros avec Excel 2007
    Par moilou2 dans le forum Excel
    Réponses: 2
    Dernier message: 05/05/2008, 14h40
  4. Message d'erreur avec des points d'interrogation
    Par Tintou dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/01/2008, 09h34
  5. [C#] Message box avec des boutons diff.
    Par BoOom dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/04/2006, 11h47

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