Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1391 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Ovh détruit mes pièces jointes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ovh détruit mes pièces jointes

n°2152419
snike
Posté le 03-08-2012 à 11:16:14  profilanswer
 

Bonjour,
 
   J'envoie des mels avec pièce jointe depuis mon intranet php via le code suivant, et ceux depuis 8 ans :

Code :
  1. $limite = "_parties_".md5(uniqid(rand()));
  2. $mail_mime = "Date: ".date("l j F Y, G:i" )."\n";
  3. $mail_mime .= "MIME-Version: 1.0\n";
  4. $mail_mime .= "Content-Type: multipart/mixed;\n";
  5. $mail_mime .= " boundary=\"----=$limite\"\n\n";
  6. //Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
  7. $texte = "This is a multi-part message in MIME format.\n";
  8. $texte .= "Ceci est un message au format MIME.\n";
  9. $texte .= "------=".$limite."\n";
  10. $texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  11. $texte .= "Content-Transfer-Encoding: 7bit\n\n";
  12. $texte .= $message;
  13. $texte .= "\n\n";
  14. $attachement="";
  15. for ($i=0;$i<count($filename);$i++) {
  16.  $attachement .= "------=".$limite."\n";
  17.  $attachement .= "Content-Type: ".$typemime."; name=\"".$nom[$i]."\"\n";
  18.  $attachement .= "Content-Transfer-Encoding: base64\n";
  19.  $attachement .= "Content-Disposition: attachment; filename=\"".$nom[$i]."\"\n\n";
  20.  $fd = fopen($filename[$i], "r" );
  21.  $contenu = fread($fd, filesize($filename[$i]));
  22.  fclose( $fd );
  23.  $attachement .= chunk_split(base64_encode($contenu));
  24.  $attachement .= "\n\n\n";
  25. }
  26. $attachement .= "\n\n\n------=".$limite."\n";
  27. return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom:$from\n".$mail_mime);


 
Les mels reçus avait bien une pièce jointe MAIS depuis mon changement d'hébergement (OVH) les pièces jointes sont vide !
J'ai fait un test en envoyant mes mels (+ pièce jointe) sur ma messagerie perso (yahoo) et j'arrive bien à lire mes pièces jointes.
J'en déduis qu'OVH détruit mes pièces jointes, non ?
D'où cela provient ?
Y'a t-il des conditions particulières pour réceptionné des mels sur OVH ?
 
J'ai testé avec PhpMailer et j'ai le même problème.
 
Merci par avance.


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
mood
Publicité
Posté le 03-08-2012 à 11:16:14  profilanswer
 

n°2152428
rufo
Pas me confondre avec Lycos!
Posté le 03-08-2012 à 13:16:44  profilanswer
 

Il bloque peut-être certaines extensions ou limite la taille des PJ?
 
J'ai une appli web chez eux sur un serveur mutualisé qui envoi des mails avec en PJ un fichier pdf, ça arrive bien aux destinataires avec tout...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2152440
FlorentG
Unité de Masse
Posté le 03-08-2012 à 14:14:58  profilanswer
 

Pas de problèmes chez moi avec OVH pour les pièces jointes [:petrus dei] Il manque un truc au niveau des boundaries là, 2 sec je regarde

n°2152443
FlorentG
Unité de Masse
Posté le 03-08-2012 à 14:32:03  profilanswer
 

Ok, alors y'a effectivement un problème au niveau du machin "$limite" (qui définit le boundary).
 
Avec un email "normal", sans pièces jointes, tu sépares les différents types de contenu via un même boundary (exemple pour avoir une version texte et html). Exemple :
 

Code :
  1. From: from@domain.com
  2. Return-Path: from@domain.com
  3. X-Mailer: PHP
  4. MIME-version: 1.0
  5. Content-Type: multipart/alternative; boundary="efdd20b206a912c5c707ec6a82ebc022"
  6. Content-Transfer-Encoding: 8bit
  7. --efdd20b206a912c5c707ec6a82ebc022
  8. Content-Type: text/plain; charset=iso-8859-1
  9. Content-Transfer-Encoding: 8bit
  10. Contenu du mail
  11. --efdd20b206a912c5c707ec6a82ebc022
  12. Content-Type: text/html; charset=iso-8859-1
  13. Content-Transfer-Encoding: 8bit
  14. <p>Contenu du mail en HTML</p>
  15. --efdd20b206a912c5c707ec6a82ebc022--
  16. --efdd20b206a912c5c707ec6a82ebc022--


 
C'est ce que fait ton code actuel, à la différence que t'as juste la version texte, pas de version HTML. Maintenant dès qu'on veut foutre des pièces jointes, ça se complique, faut un double boundary qui sépare les contenus bruts des pièces jointes :

Code :
  1. From: from@domain.com
  2. Return-Path: from@domain.com
  3. X-Mailer: PHP
  4. MIME-version: 1.0
  5. Content-Type: multipart/mixed; boundary="php-mixed-8e85df8c0c0d6919cbad25e5f6cb0537"
  6. Content-Transfer-Encoding: 8bit
  7. --php-mixed-11051de50872b56eef891a737b3c563c
  8. Content-Type: multipart/alternative; boundary="php-alt-11051de50872b56eef891a737b3c563c"
  9. --php-alt-11051de50872b56eef891a737b3c563c
  10. Content-Type: text/plain; charset=iso-8859-1
  11. Content-Transfer-Encoding: 8bit
  12. Contenu du mail
  13. --php-alt-11051de50872b56eef891a737b3c563c
  14. Content-Type: text/html; charset=iso-8859-1
  15. Content-Transfer-Encoding: 8bit
  16. <p>Contenu du mail</p>
  17. --php-alt-11051de50872b56eef891a737b3c563c--
  18. --php-mixed-11051de50872b56eef891a737b3c563c
  19. Content-Type: image/png; name="une-image.png"
  20. Content-Transfer-Encoding: base64
  21. Content-Disposition: attachment
  22. (fichier en base64)
  23. --php-mixed-11051de50872b56eef891a737b3c563c--


 
J'ai donc 2 boundaries : un préfixé avec php-alt-, l'autre avec php-mixed-, les 2 sont donc imbriqués
 
Et voilà [:petrus75]
 

n°2170372
damshiwa
Posté le 09-01-2013 à 10:29:26  profilanswer
 

Je ne pense pas que ce soit un problème de limite car il n'a pas besoin d'imbriquer un deuxième multipart s'il n'y a qu'une version texte du message.
 
J'ai le même problème chez ovh, mais que pour les mails qui arrivent sur une boite hébergée sur le même serveur. Le même mail arrive bien sur n'importe quelle autre boite mail...
 
Si quelqu'un d'autre à rencontré ce problème et trouvé une solution je suis preneur !

n°2170401
tsoko
Posté le 09-01-2013 à 11:48:23  profilanswer
 

Bonjour,
Je pense que le problème a été résolu. :)


---------------
Besoin d'aide pour votre projet? agence web
n°2170444
snike
Posté le 09-01-2013 à 14:15:56  profilanswer
 

Bonjour,
 
  Pourquoi le problème à été résolu  
 


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°2170761
damshiwa
Posté le 11-01-2013 à 16:36:24  profilanswer
 

En fait la pièce jointe est bien présente quand je me connecte avec le webmail. Le problème doit venir du PC.

n°2170963
damshiwa
Posté le 14-01-2013 à 09:36:31  profilanswer
 

snike a écrit :

Bonjour,
 
   J'envoie des mels avec pièce jointe depuis mon intranet php via le code suivant, et ceux depuis 8 ans :

Code :
  1. $limite = "_parties_".md5(uniqid(rand()));
  2. $mail_mime = "Date: ".date("l j F Y, G:i" )."\n";
  3. $mail_mime .= "MIME-Version: 1.0\n";
  4. $mail_mime .= "Content-Type: multipart/mixed;\n";
  5. $mail_mime .= " boundary=\"----=$limite\"\n\n";
  6. //Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
  7. $texte = "This is a multi-part message in MIME format.\n";
  8. $texte .= "Ceci est un message au format MIME.\n";
  9. $texte .= "------=".$limite."\n";
  10. $texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  11. $texte .= "Content-Transfer-Encoding: 7bit\n\n";
  12. $texte .= $message;
  13. $texte .= "\n\n";
  14. $attachement="";
  15. for ($i=0;$i<count($filename);$i++) {
  16.  $attachement .= "------=".$limite."\n";
  17.  $attachement .= "Content-Type: ".$typemime."; name=\"".$nom[$i]."\"\n";
  18.  $attachement .= "Content-Transfer-Encoding: base64\n";
  19.  $attachement .= "Content-Disposition: attachment; filename=\"".$nom[$i]."\"\n\n";
  20.  $fd = fopen($filename[$i], "r" );
  21.  $contenu = fread($fd, filesize($filename[$i]));
  22.  fclose( $fd );
  23.  $attachement .= chunk_split(base64_encode($contenu));
  24.  $attachement .= "\n\n\n";
  25. }
  26. $attachement .= "\n\n\n------=".$limite."\n";
  27. return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom:$from\n".$mail_mime);


 
Les mels reçus avait bien une pièce jointe MAIS depuis mon changement d'hébergement (OVH) les pièces jointes sont vide !
J'ai fait un test en envoyant mes mels (+ pièce jointe) sur ma messagerie perso (yahoo) et j'arrive bien à lire mes pièces jointes.
J'en déduis qu'OVH détruit mes pièces jointes, non ?
D'où cela provient ?
Y'a t-il des conditions particulières pour réceptionné des mels sur OVH ?
 
J'ai testé avec PhpMailer et j'ai le même problème.
 
Merci par avance.


 
Essaie de remplacer la dernière ligne

Code :
  1. $attachement .= "\n\n\n------=".$limite."\n";

par

Code :
  1. $attachement .= "\n\n\n------=".$limite."--\n";


 
C'est pour fermer les boundaries qu'il faut ajouter les -- à la fin
 
Aussi, pour éviter des problèmes avec certaines messageries, tu peux encadrer le contenu de ta pièce jointe par des \r\n

Code :
  1. chr(13).chr(10).chunk_split(base64_encode($contenu)).chr(13).chr(10)



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Ovh détruit mes pièces jointes

 

Sujets relatifs
Mon formulaire de contact ne marche pas chez OVH (mais ailleurs oui).Session: envoi pièces jointe stocké en BD
Session: envoi pièces jointe stocké en BDOVH redirection mondomaine.fr vers www.mondomaine.fr
Question sur hébergement OVHOVH - mutualisé - vhost ?
PhpMailer et pièces jointes de grande tailleProblème de redirection DNS sur mutualisé 2 Ovh
probleme de bdd OVH aprés installation wordpress 
Plus de sujets relatifs à : Ovh détruit mes pièces jointes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR