Je propose à votre sagacité un code (tout simple me semble-t-il) chargé d'envoyer un mail au format html avec pièce jointe. Ce mail est déclenché à l'arrivée sur la page de retour de Paypal, et l'email destinataire récupéré dans la $_SESSION.
Cela fait plusieurs jours que je bataille avec ça, et que j'obtiens comme seul résultat:
Le mail n'a pu être envoyé; contactez le webmaster, svp.
C'est le seul message, pas de message d'erreur php.
Voici le code:
<?php
$delim = md5(uniqid(rand()));
//type MIME utilisé
$head = "MIME-Version: 1.0\n";
//type contenu et frontieres entre parties
$head .="Content-Type:multipart/mixed; boundary=\"$delim\" \n";
$head .="X-Priority: 1 \n";
$head .="\n";
//message à destination des logiciels ne lisant pas le type MIME
$msg .="Ce message est au format MIME -\n";
$msg .="\n";
//1ere partie du message
//on indique la frontière
$msg .="--$delim\n";
//on indique le contenu du message
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfert-Encoding:8bit\n";
$msg .= "\n";
$msg .= "Bonjour,\n
Merci et blablabla
A bientôt.\n";
$msg .= wordwrap($msg, 70);
$msg .= "\n";
//seconde partie du message : le fichier joint
$fichier = "lechemin vers le fichier.pdf";
$attache = file_get_contents($fichier);
$attache .= chunk_split(base64_encode($attache));
$msg .="--$delim\n";
$msg .= "Content-Type: application/pdf; name=\"$fichier\"\n";
$msg .= "Content-Transfert-Encoding: base64\n";
$msg .= "Content-Disposition: attachment; filename=\"$fichier\"\n";
$msg .= "\n";
$msg .= $attache . '\n';
$msg .= "\n";
$msg .= "--$delim--";
$dest = $_SESSION['email'] ;
$exp = "lemail@lesite";
if (mail($dest,$msg,"Reply-to:$exp\nFrom: $exp\n".$head))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé; contactez le webmaster, svp.';
}
?>
Voilà. Je désespère de pouvoir un jour y arriver...Merci d'avance à tous avis, commentaires, conseils, pistes.