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

Langage PHP Discussion :

[Mail] pièces jointes non reçues sous hotmail et ovh


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut [Mail] pièces jointes non reçues sous hotmail et ovh
    Bonjour,

    Je viens à vous car ça fait plus de 6h que je passe dessus et que je n'arrive pas à trouver le problème.

    J'ai un formulaire où les visiteurs peuvent me laisser un e-mail avec pieces jointes.

    Le problème : je ne reçois jamais les pièces jointes.

    Sur hotmail, la pièce jointe reste à 0Ko et donc ne fonctionne pas.

    Sur le webmail d'ovh, il m'ecrit qq chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    --------------fed43c14b08eba9ddcd81c0c8b92dead
    Content-type: application/octet-stream
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="frn.pdf"
     
    JVBERi0xLjINJeLjz9MNCjI3NiAwIG9iag08PCANL0xpbmVhcml6ZWQgMSANL08gMjc4IA0vSCBb
    IDEyODQgMjcxIF0gDS9MIDE4OTMxMyANL0UgMTQxOTY5IA0vTiA5IA0vVCAxODM2NzQgDT4+IA1l
    bmRvYmoNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICB4cmVmDTI3NiAzMCANMDAwMDAwMDAxNiAwMDAwMCBuDQowMDAwMDAwOTUxIDAwMDAwIG4NCjAw
    MDAwMDE1NTUgMDAwMDAgbg0KMDAwMDAwMTkxMiAwMDAwMCBuDQowMDAwMDAyMzYwIDAwMDAwIG4N
    CjAwMDAwMDI1NzcgMDAwMDAgbg0KMDAwMDA3MzA2NCAwMDAwMCBuDQowMDAwMDczMjQ1IDAwMDAw
    IG4NCjAwMDAwNzMyNjcgMDAwMDAgbg0KMDAwMDEzNjQwNCAwMDAwMCBuDQowMDAwMTM2NjIzIDAw
    MDAwIG4NCjAwMDAxMzY4MzYgMDAwMDAgbg0KMDAwMDEzNzE2NiAwMDAwMCBuDQowMDAwMTM3Nzcw
    IDAwMDAwIG4NCjAwMDAxMzc3OTIgMDAwMDAgbg0KMDAwMDEzODMxNCAwMDAwMCBuDQowMDAwMTM4
    [...]

    Je ne vois que ça mais pas de pièce jointe... mais bizarre, sur outlook, on les voit !

    Alors comment faire pour que ces webmails (ovh et hotmail) voient la pièce jointe SVP ???

    Je vous une fonction qui est concernée par ça :

    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
    function _build_attachement() {
     
            $this->boundary= "------------" . md5( uniqid("myboundary") ); // TODO : variable bound
     
            $this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";
            $this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/plain; charset=\"iso-8859-1\"\nContent-Transfer-Encoding: 8bit\n\n" . $this->body ."\n";
            $sep= chr(13) . chr(10);
     
            $ata= array();
            $k=0;
     
            // for each attached file, do...
            for( $i=0; $i < sizeof( $this->aattach); $i++ ) {
     
                    $filename = $this->aattach[$i];
                    $basename = basename($filename);
                    $ctype = $this->actype[$i];        // content-type
                    $disposition = $this->adispo[$i];
     
                    if( ! file_exists( $filename) ) {
                            echo "Class Mail, method attach : file $filename can't be found"; exit;
                    }
                    $subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n  filename=\"$basename\"\n";
                    $ata[$k++] = $subhdr;
                    // non encoded line length
                    $linesz= filesize( $filename)+1;
                    $fp= fopen( $filename, 'r' );
                    $data= base64_encode(fread( $fp, $linesz));
                    fclose($fp);
                    $ata[$k++] = chunk_split( $data );
            }
     
            $this->attachment= implode($sep, $ata);
    }
    J'ai essayé de mettre des tirets après le boundary car j'ai lu qu'il en fallait avant et après, de changer le content-transfer, de changer tout plein de choses mais ça ne fonctionne toujours pas...


    Pouvez-vous m'aider SVP ??

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,
    Juste une idée en l'air, comme ça :
    L'encodage en base 64, c'possible ?

    Sinon, de ce que tu as sur le serveur ovh, le blabla, c'est ton fichier ... encodé en base 64, ce qui veux dire qu'il est bien envoyé, je pense :/

    Je connais pas exactement le fonctionnement des pièces jointes ... Mais à mon avis l'base 64 fais plus de mal que de bien :/
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Oui, l'encodage se fait en base 64, c'est tout à fait possible

    Cela met tout en binaire dans l'e-mail et transforme les données en caractère...

    TU me conseillerais de mettre quoi à la place de la base 64 ?

    Merci d'avance !

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Oh, ben je savais pas ça !

    Mais avant de t'attaquer à ça, je conseillerais de commencer sans encodage, sans rien, et d'envoyer un fichier texte tout bête, le genre de chose que tu peux facilement vérifier, puis si ça marche, passer au pdf, puis tester les encodages

    Désolé d'être si peu utile.
    Bonne chance
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Une solution serait d'utiliser PHPMAILER...

    http://stephaneey.developpez.com/tut...hpmailer/#L6.4
    De retour parmis vous après 10 ans!!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Merci à vous...
    Après plusieurs heures de recherche, je me suis aperçu que le script que j'avais pris affichait deux lignes en trop, je les ai donc mis en commentaire et tout fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //$this->headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    //$this->headers .= "Content-Transfer-Encoding: 8bit\n";
    Cool !!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/03/2010, 15h00
  2. [Mail] Envoi/Reception compte mail (pièce jointe)
    Par Curby dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2007, 20h54
  3. Réponses: 7
    Dernier message: 30/06/2006, 17h12
  4. [Mail] mail pièce jointe
    Par yAnSoLo82 dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2006, 13h48
  5. [Mail] [fonction mail] Pièces jointes
    Par poussinphp dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2005, 12h15

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