envoi de mail avec fichier
Posté : 08 avr. 2012, 18:09
salut je viens de trouver un code d'envoi de mail avec fichier que j'ai tenté d'adapter à mon cas .
mon problème est que je sais pas si j'ai bien adapté . et j'ai des problèmes de compréhension a certain niveau. et souvent le mail est envoyé et ouvent non. en plus l'envoi est lent et la page est lourde .
je met la les parties ou j'aimerai avoir des explication afin de souvoir si j'ai bien renseigné ses parties :
mon problème est que je sais pas si j'ai bien adapté . et j'ai des problèmes de compréhension a certain niveau. et souvent le mail est envoyé et ouvent non. en plus l'envoi est lent et la page est lourde .
je met la les parties ou j'aimerai avoir des explication afin de souvoir si j'ai bien renseigné ses parties :
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("upload_fichier/image.jpg", "r");
$attachement = fread($fichier, filesize("upload_fichier/image.jpg"));
et voici mon code complet :
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('SMTP','smtp.aviso.ci');
ini_set('smtp_port', 25);
ini_set('sendmail_from','[email protected]');
$mail = '[email protected]'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("upload_fichier/image.jpg", "r");
$attachement = fread($fichier, filesize("upload_fichier/image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Hey mon ami !";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"WeaponsB\"<[email protected]>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <[email protected]>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe.
$message.= "Content-Type: image/jpeg; name=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"upload_fichier/image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
?>
NB : s'il ya des partie que je pourai ameliorer montrer les mois