7841 sujets

Développement web côté serveur, CMS

Bonjour,

Alors voila j'essaye de creer un mail automatique et de l'envoyer en php, mais j'ai le problème suivant : le logo (attachement) ne s'affiche pas, et les informations du boundary s'affichent dans le mail et du début du message (encodage)

Voila le code associé :

<?php
// ini_set('SMTP','smtp.free.fr');
// date_default_timezone_set('Etc/GMT+2'); //fuseau horaire obligatoire pour l'envoie d'une piece jointe
//

$chemin='clientsARelancer.csv';
$delim='|';

$fichier=fopen($chemin, 'r'); //on ouvre le fichier en lecture
while($info= fgetcsv($fichier, 1000, $delim ))
{

  $numCommande=$info[0];
  $numFacture=$info[1];
  $nomClient=$info[2];
  $prenomClient=$info[3];
  $mailClient=$info[4];
  $adresse1Client=$info[5];
  $adresse2Client=$info[6];
  $codePostalClient=$info[7];
  $villeClient=$info[8];
  $telClient=$info[9];
  $refCommande=$info[10];
  $dateCommande=$info[11];
  $montantCommande=$info[12];

  // echo '<h1>Recap</h1><br/>';
  // echo $numCommande.'<br/>';
  // echo $numFacture.'<br/>';
  // echo $nomClient.'<br/>';
  // echo $prenomClient.'<br/>';
  // echo $mailClient.'<br/>';
  // echo $adresse1Client.'<br/>';
  // echo $adresse2Client.'<br/>';
  // echo $codePostalClient.'<br/>';
  // echo $villeClient.'<br/>';
  // echo $refCommande.'<br/>';
  // echo $dateCommande.'<br/>';
  // echo $telClient.'<br/>';
  // echo $montantCommande.'<br/><br/>';




  $boundary = "-----=".md5(uniqid(rand()));// definition de la limite entre differentes parties du mail

  // $header  = "From: \"samuel@krysalidesign.com\"– FERYL EDITIONS (société KRYSALIDESIGN)\n";
  //$header = "From : $expediteur \r\n";
  //$header = 'From: "FERYL EDITIONS (société KRYSALIDESIGN)"<adresse@fai.fr>'."\n";


  //Generation de l'entete du mail
  $header  = "MIME-Version: 1.0\r\n";
  $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $header .= "\r\n"; // saut de ligne pour terminer le header

  //1ere étape : insertion du texte
  $message  = "--$boundary\r\n";
  $message .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
  $message .= "Content-Transfer-Encoding:8bit\r\n"; //encodage du texte
  $message .= "\r\n";
  $message .= "Bonjour, \n\n";
  $message .= "Sauf erreur de ma part, la facture numéro ".$numFacture." du ".$dateCommande." et d'un montant de ".$montantCommande."€ TTC n'a pas été réglée. (Ouvrage concerné : Les Prélats de Faneas – ISBN : 9782956137801) \n";
  $message .= "Merci de prévoir son règlement avant le 31/01/2019 : \n";

  $message .="\r\n";
  //$message .= "--$boundary--\r\n";
  //2eme étape : Insertion du logo
  $logo= 'img/logo.jpg';
  $logoOpen= fopen($logo, 'rb');
  $attachement = fread($logoOpen, filesize($logo));
  fclose($logoOpen);

  $attachment = chunk_split(base64_encode($attachment));

  $message .= "--$boundary\r\n";
  $message .= "Content-Type: image/gif; name=\"$logo\"\r\n";
  $message .= "Content-Transfer-Encoding: base64\r\n"; //encodage de la PJ
  $message .= "Content-Disposition: inline; filename=\"$logo\"\r\n"; // choix pour que la piece jointe s'affiche directement dans le navigateur
  $message .= "\r\n";
  $message .= $attachment . "\r\n"; // ajouter le fichier
  $message .= "\r\n\r\n";

  $message .= "--$boundary--\r\n";

  //définition des variables contenant les données pour l'envoie du mail
  $expediteur = 'test@gmail.com';
  $destinataire = 'autreTest@gmail.com';
  $objet = 'Relance facture impayée 2018 '.$numFacture;
  $header="From: $expediteur \r\n";
  //envoie du mail
  mail($destinataire, $objet, $message, $header);
}
fclose($fichier);
//affichage du texte à l'ecran
echo 'Les mails de rappel d\'impayés ont été envoyés <br/>';
echo '<a href="index.php">Retour à la boutique</a>';

?>


Si un sauveur se cache parmi vous, n’hésitez pas à vous montrer ^^