Bonjour à tous,
Après mainte recherche et beaucoup de test en local, je n'arrive pas à envoyer un mail avec un fichier joint ET mon texte au format html.
J'ai lu beaucoup d'article qui parlai d'un certain Boundary, chose que je comprend toujours pas d'ailleurs, alors j'arrive à envoyer un mail html avec des images, j'arrive à envoyer un mail avec un fichier joint, mais je n'arrive pas à faire les deux dans le même mail
du coup voilou mon bout de code qui envoi juste un fichier pdf et ne m'affiche pas mon message :
le contenu je le récupère avec un POST de la page d'avant, l'image et le pdf sont sur le serveur ftp qui héberge le site.
Du coup je suis pas sur d'avoir très bien compris ce "Boundary" qui doit être utilisé pour "séparés" le corps du mail et l'entête (dites moi si je me trompe)
D'avance merci.
Modifié par Loucas (01 Sep 2010 - 11:52)
Après mainte recherche et beaucoup de test en local, je n'arrive pas à envoyer un mail avec un fichier joint ET mon texte au format html.
J'ai lu beaucoup d'article qui parlai d'un certain Boundary, chose que je comprend toujours pas d'ailleurs, alors j'arrive à envoyer un mail html avec des images, j'arrive à envoyer un mail avec un fichier joint, mais je n'arrive pas à faire les deux dans le même mail
du coup voilou mon bout de code qui envoi juste un fichier pdf et ne m'affiche pas mon message :
...
$boundary = "-----=".md5(uniqid(rand())); // le fameux boundary
$headers = "From:commandes@....com\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: application/pdf; name=\"DOC_THP_Star.pdf\"; boundary=\"$boundary\"\r\n"."\n";
$headers .= "Content-Transfer-Encoding: base64"."\n";
$headers .= "Content-Disposition:attachement; filename=\"DOC_THP_Star.pdf\""."\n\n";
$headers .= chunk_split(base64_encode(file_get_contents('/home/.../www/admin/doc/DOC_THP_Star.pdf')))."\n"; // encodage du pdf
$headers .= "Content-type: text/html; charset=iso-8859-1; boundary=\"$boundary\"\r\n";
$contenu_mail .= "<img src=\"http://www.....com/charte/bandeau_cuisson.jpg\" width=\"650px\" height=\"99px\" alt=\"...\" />";
$contenu_mail .= $_POST['contenu_mail']; //contenu rechercher sur la page d'avant, sans importance
$contenu_mail .= "--$boundary\r\n";
$subject = "... : envoi de votre commande $commande";
mail($to, $subject, $contenu_mail, $headers);
...
le contenu je le récupère avec un POST de la page d'avant, l'image et le pdf sont sur le serveur ftp qui héberge le site.
Du coup je suis pas sur d'avoir très bien compris ce "Boundary" qui doit être utilisé pour "séparés" le corps du mail et l'entête (dites moi si je me trompe)
D'avance merci.
Modifié par Loucas (01 Sep 2010 - 11:52)