Problème lecture de mail reçu par IMAP

Par Jordan Effairesse, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.
Je récupère en automatique des mails sur une BAL et je lance un traitement en fonction de l'objet en récupérant les pièces jointes et en les transférant par mail à une autre adresse.
Le code est fonctionnel mais je pense que je dois rater quelque chose dans la construction du mail de réponse.b
En effet, lorsque j'ouvre mon mail par outlook, tout va bien mais lorsque je l'ouvre sur iOS, j'ai la pièce jointe et le texte du mail qui sont l'un sur l'autre pourtant je pense avoir bien séparer les différents blocs.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

$eol = PHP_EOL; $message_html = "<html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <title>TITRE</title> </head> <body> <b>Bonjour</b>, <br> <br> blablabla<br> <br> Cordialement,<br> <b>blabla</b><br> </body> </html>"; $boundary = uniqid("_Part_".time(), true); //random unique string $boundary2 = uniqid("_Part2_".time(), true); //random unique string //==sujet. $subject = " Emploi - CV demandé"; $subject = mb_encode_mimeheader($subject,"UTF-8"); //==header $header = "From: \"Omercity\"<no-reply@test.fr>".$eol; $header.= "Reply-to: \"Omercity\" <contact@test.fr>".$eol; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"".$eol; //==corps $message = "--".$boundary.$eol; $message .= "Content-Type: multipart/alternative;\n"; $message .= " boundary=\"$boundary2\"\n"; $message .= "\n"; $message .= "--$boundary2\n"; //==text $message .= "Content-Type: text/plain; charset=utf-8\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "\n"; $message .= strip_tags($message_html); //remove any HTML tags $message .= "\n"; //==html $message .= "--$boundary2\n"; $message .= "Content-Type: text/html; charset=utf-8\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "\n"; $message .= $message_html; $message .= "\n"; $message .= "--$boundary2--\n"; //==attachement $message .= "\n"; $message .= "--$boundary\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "Content-Type: application/octet-stream; name=$filename;\n"; $message .= "Content-Disposition: attachment; filename=$filename;\n"; $message .= "\n"; $message .= $content; $message .= "\n--$boundary"; //==fermeture $message .= "--\n"; mail($mail, $subject, $message, $header);

Un peu d'aide ne serait pas de refus.

Merci d'avance

6 réponses

Jordan Effairesse, il y a 9 ans

Un petit up au cas ou ^^

Jordan Effairesse, il y a 9 ans

un dernier petit up et je sors -.-

Kenor, il y a 9 ans

Sans t'apporter réellement de réponses, si il y a bien une chose sur lequel je préfère utiliser une dépendance, c'est dans le domaine du mail. Comme tu as un exemple ici, le fait que ça fonctionne à un endroit ne va pas le faire fonctionner à un autre endroit. Or, je doute que tu vas tester dans les 1001 cas possibles de lecture d'email pour être sûr d'avoir trouver le graal que tu cherches.

Par conséquent, je dirai, fait confiance à la communauté de dev, et utilise une dépendance tel que PHPMailer pour envoyer ton email. Au moins, tu n'auras pas à te soucier des 150 cas particuliers qui vont faire que ça ne marche pas.

Jordan Effairesse, il y a 9 ans

Merci :-)
je vais regarder dans ce sens alors. (Question con c'est possible sur un ovh mutu ?)

Kenor, il y a 9 ans

Je n'utilise pas OVH mutu, mais il y a théoriquement aucune raison que ça ne marche pas.

Jordan Effairesse, il y a 9 ans

Je vais mettre résolu pendant mes recherches.
Encore merci