Bonjour,
J'ai un script PHP qui envoie un mail avec une image en pièce jointe.
Lors de la réception du mail, aucun problème avec Gmail, mais impossible d'ouvrir l'image avec Hotmail ou Outlook après l'avoir téléchargée :
- "Aucun aperçu disponible" avec la visionneuse windows
- "Erreur d'interprétation du fichier d'image JPEG" sous Ubuntu.
Voici le script :
Je n'ai pas bien saisi l'utilisation des boundaries, l'erreur vient peut-être de là.
Merci d'avance,
Romain
Modifié par RomainDumay (05 Sep 2011 - 15:33)
J'ai un script PHP qui envoie un mail avec une image en pièce jointe.
Lors de la réception du mail, aucun problème avec Gmail, mais impossible d'ouvrir l'image avec Hotmail ou Outlook après l'avoir téléchargée :
- "Aucun aperçu disponible" avec la visionneuse windows
- "Erreur d'interprétation du fichier d'image JPEG" sous Ubuntu.
Voici le script :
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$pj = "plan_acces.jpg";
$piecejointe = "--".$boundary."\r\n";
$piecejointe .= 'Content-Type: image/jpeg; name="'.$pj.'"'."\n";
$piecejointe .= 'Content-Transfer-Encoding: base64'."\n";
$piecejointe .= 'Content-Disposition:attachement; filename="'.$pj.'"'."\n\n";
$piecejointe .= "Content-ID: <image1>\r\n\r\n";
$piecejointe .= chunk_split(base64_encode(file_get_contents($pj)));
$piecejointe .= "\r\n\r\n";
$piecejointe .= "--".$boundary."\r\n";
$corps = "--".$boundary."\r\n";
$corps .= 'Content-type: text/html; charset= iso-8859-1'.'\r\n';
$corps .= "Content-Transfer-Encoding: 8bit\n\n";
$corps .= stripslashes($_POST['corps'])."\r\n";
$corps .= $piecejointe;
$dest = "*********************"; //test email
if(mail($dest, $_POST['objet'], $corps, $header))
$confirm .= "<p>L'email a bien été envoyé.</p>";
else $confirm .= "<p>Erreur lors de l'envoi de l'email.</p>";
Je n'ai pas bien saisi l'utilisation des boundaries, l'erreur vient peut-être de là.
Merci d'avance,
Romain
Modifié par RomainDumay (05 Sep 2011 - 15:33)