Envoi de mail avec piece jointe .xls

Jeanette -  
 Jeanette -
Bonjour,

je travaille sur une application PHP/MySQL.
J'affiche un tableau grace à une requete MySQL. J'arrive independement l'un de l'autre a exporter ce tableau dans une feuille Excel et à utiliser la fonction mail.

Seulement, je voudrais envoyer le fichier Excel par mail. Pour cela j'ai fais quelques recherches sur internet et j'ai trouvé un code bien expliqué ici :

https://www.phpfacile.com/apprendre_le_php/envoyer_un_mail_en_php/2

J'ai essayé de reproduire cette méthode, mon envoi de mail s'effectue bien mais le message ne s'affiche pas et la piece jointe existe mais est vide.

Est-ce vraiment possible d'à la fois créer le fichier .XLS, le lire, le mettre en pièce jointe?

Merci de vos réponses

1 réponse

  1. Jeanette
     
    Pour plus de précision voici une partie de mon code :

    if($nom_agent=="TROUFLEAU")
    {
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";

    $msg = "Je vous informe que ce message est au format MIME 1.0 multipart/mixed.\r\n";

    $msg .="--boundary\r\n";
    $msg .="Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    $msg .="Content-Transfert-Encoding:8bits\r\n";
    $msg .="\r\n";
    $msg .="Ceci est un message automatique, veuillez ne pas y répondre.\r\n";
    $msg .="\r\n";

    $reqfinale = "SELECT id, id_evenement, numTicket, prioriteTraitement, idUn, etat, date_intervention, nom_agent, prenom
    FROM eds_actif_jointure
    WHERE nom_agent='TROUFLEAU'"
    or die ("impossible dexecuter la requete finale");
    $res = mysql_query($reqfinale) or die("requete incorrecte");
    $nb_init = mysql_num_rows($res);
    $file = "eds_actif_$nom_agent.xls";
    echo "ID\t MCMT\t OCEANE\t PRIORITE\t DATE_INT\t SGTQS\t ETAT\t NOM\t PRENOM";

    while($row = mysql_fetch_array($res)){

    $id = $row['id'];
    $id_evenement = $row['id_evenement'];
    $numTicket = $row['numTicket'];
    $prioriteTraitement = $row['prioriteTraitement'];
    $date_intervention = substr($row[date_intervention],8,2)."/".substr($row[date_intervention],5,2)."/".substr($row[date_intervention],0,4);
    $idUn = $row['idUn'];
    $etat = $row['etat'];
    $nom_agent = $row['nom_agent'];
    $prenom = $row['prenom'];

    echo "\n$id\t$id_evenement\t$numTicket\t$prioriteTraitement\t$date_intervention\t$idUn\t$etat\t$nom_agent\t$prenom";

    }
    echo "\n";

    $fp = fopen($file, "rb");
    $attachement = fread($fp, filesize($file));
    fclose(fp);

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

    $msg .="--$boundary\r\n";
    $msg .="Content-type: text/xml; name=\"$file\"\r\n";
    $msg .="Content-Transfert-Encoding: base64\r\n";
    $msg .="Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .="\r\n";
    $msg .= $attachment . "\r\n";
    $msg .="\r\n\r\n";
    $msg .="--$boundary--\r\n";

    $subject='RAPPEL-Clôture des océanes';
    $expediteur = "actipems.mt@orange-ftgroup.com";
    $reponse = $expediteur;
    echo "Ce script envoi un mail avec fichier attache ? $expediteur";

    $reqmail = mysql_query ("SELECT DISTINCT email FROM eds_actif_jointure WHERE nom_agent='TROUFLEAU'") or die ("impossible d'executer la requete finale");
    while ($row = mysql_fetch_row($reqmail))
    {
    mail($row[0], $subject, $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    $erreur=2;
    }
    }
    0