OVH Cloud OVH Cloud

Separation des fichiers

1 réponse
Avatar
Steph
Bonjour,

Je n'arrive pas à joindre plusieurs fichiers à l'aide de la fonction
ci-dessous. Elle marche très bien pour joindre un fichier, mais je n'arrive
pas à en mettre plusieurs. Comment faire, notament pour séparer les fichiers
dans le mail ?

Merci

Steph.

Voici le script d'envoi du mail :
function mail_attach($to , $sujet , $message , $fichier , $typemime , $nom ,
$reply , $from)
{
$limite = "_parties_".md5(uniqid (rand()));
$mail_mime = "Date: ".date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/mixed;\n";
$mail_mime .= " boundary=\"----=$limite\"\n\n";

//Le message en texte simple pour les navigateurs qui n'acceptent pas le
HTML
$texte = "This is a multi-part message in MIME format.\n";
$texte .= "Ceci est un message est au format MIME.\n";
$texte .= "------=$limite\n";
$texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$texte .= "Content-Transfer-Encoding: 32bit\n\n";
$texte .= $message;
$texte .= "\n\n";

//le fichier
$attachement = "------=$limite\n";
$attachement .= "Content-Type: $typemime; name=\"$nom\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"$nom\"\n\n";
$fp = fopen($fichier, "rb");
$buff = fread($fp, filesize($fichier));
fclose($fp);
$attachement .= chunk_split(base64_encode($buff));


$attachement .= "\n\n\n------=$limite\n";
return mail($to, $sujet, $texte.$attachement,
"Reply-to:$reply\nFrom:$from\n".$mail_mime);
}

1 réponse

Avatar
P'tit Marcel
Steph écrivit:

Je n'arrive pas à joindre plusieurs fichiers à l'aide de la fonction
ci-dessous. Elle marche très bien pour joindre un fichier, mais je
n'arrive pas à en mettre plusieurs. Comment faire, notament pour
séparer les fichiers dans le mail ?


ne t'embête pas, utilise une classe mime mail qui fait ça pour toi, style
celle de R. Heyes sur phpguru.org


Voici le script d'envoi du mail :
function mail_attach($to , $sujet , $message , $fichier , $typemime ,
$nom , $reply , $from)
{
$limite = "_parties_".md5(uniqid (rand()));
$mail_mime = "Date: ".date("l j F Y, G:i")."n";


Pas bon : le jour de la semaine devrait être sur 3 car, il manque une
virgule après, le mois aussi doit être abrégé, l'heure doit être sur 2
chiffres, les secondes manquent, le décalage GMT aussi.
Voir la suggestion ci-dessus.


$mail_mime .= "MIME-Version: 1.0n";
$mail_mime .= "Content-Type: multipart/mixed;n";
$mail_mime .= " boundary="----=$limite"nn";

//Le message en texte simple pour les navigateurs qui n'acceptent
pas le HTML
$texte = "This is a multi-part message in MIME format.n";
$texte .= "Ceci est un message est au format MIME.n";
$texte .= "------=$limiten";
$texte .= "Content-Type: text/plain; charset="iso-8859-1"n";
$texte .= "Content-Transfer-Encoding: 32bitnn";


32bits ??? ça existe vraiment ?

$texte .= $message;
$texte .= "nn";

//le fichier
...


et ou est le 2° fichier ?

$attachement .= "nnn------=$limiten";


et la limite de fin ??


conclusion : utilise une classe faite pour ça ou lis de détail les RFC
kivabien
http://www.faqs.org/rfcs/rfc822.html
http://www.faqs.org/rfcs/rfc2045.html


eça
--
P'tit Marcel
statistiques sur les forums modérés : http://www.centrale-lyon.org/ng/