Problemes avec ma méthode d envoie de mail
Posté : 06 avr. 2009, 14:14
Bonjour,
J ai un soucis avec ma méthode d envoie de mail. Mon message est écrit en html, et sur certaines boites mail, ça ne passe pas du tout, alors que quand je reçois sur Thunderbird, le mail est nickel. Donc je désirerai avoir quelques conseils pour pallier à mon soucis et permettre la reception d'un mail nickel, quelque soit la boite mail.
Ma méthode :
J ai un soucis avec ma méthode d envoie de mail. Mon message est écrit en html, et sur certaines boites mail, ça ne passe pas du tout, alors que quand je reçois sur Thunderbird, le mail est nickel. Donc je désirerai avoir quelques conseils pour pallier à mon soucis et permettre la reception d'un mail nickel, quelque soit la boite mail.
Ma méthode :
/** fonction permmettant d envoyer un mail **/
function _sendMail($message,$exp,$dest,$objet){
//$msg = message envoyé
//$exp = personne qui expedie le message
//$dest = destinataire qui recevra le message
$random_hash = "PHP-alt-".md5(date('r', time()));
$head = "MIME-Version: 1.0\n";
$head .= "Content-Type: multipart/alternative; boundary=\"".$random_hash."\"";
$head .= "Reply-to: ".$dest."\n";
$head .= " \n";
//$msg .= "Ce message est au format MIME ...\n";
//$msg .= "\n";
//Premiere partie du message
//Frontiere
//Contenu message
$message_txt = strip_tags(str_replace('<br>',chr(10),$message));
//$msg = "--".$random_hash."\n";
$head .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$head .= "Content-Transfer-Encoding: 7bit\n\r";
$msg .= $message_txt."\n\r";
//$msg .= "--".$random_hash."\n";
$head .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$head .= "Content-Transfer-Encoding: 7bit\n\r";
$msg .= $message."\n\r";
// $msg .= '--'.$random_hash.'--';
//Attachement de l image
$fichier = fopen($_SERVER['DOCUMENT_ROOT'].'/images/site-creation.jpg','r'); //on ouvre le fichier en lecture seule
$attachement = fread($fichier, filesize($_SERVER['DOCUMENT_ROOT'].'/images/site-creation.jpg')); //on lit l'ensemble du fichier avec la fonction fread
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier); //on ferme le fichier
//=====Ajout de la pièce jointe
$msg .= "Content-Type: image/jpeg;\n name=\"site-creation.jpg\"\n";
$msg .= "Content-Transfer-Encoding: base64\n";
$msg .= "Content-Disposition: attachment;\n filename=\"site-creation.jpg\"\n";
//$msg .= "\n".$attachement."\n\n";
//$msg .= "\n--".$boundary."--\n";
@mail($dest,$objet,$msg,"Reply-to:$exp\nFrom: $exp\n".$head);
}