Problème avec mailing multipart
Bonjour à tous
j'ai actuellement un problème avec un envoi de mail.
En effet, je n'arrive pas à envoyer de mail multipart.
Lorsque j'utilise le script php suivant, le mail est bien envoyé au destinataire mais le message est vide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
# -=-=-=- MIME BOUNDARY
$mime_boundary = "----Test----".md5(time());
# -=-=-=- MAIL HEADERS
$to = "moi@moi.com";
$subject = "Test";
$headers = "From: Our Company <company@ourcompany.com>\r\n";
$headers .= "Reply-To: Our Company <company@ourcompany.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\r\n";
# -=-=-=- TEXT EMAIL PART
$message = "--$mime_boundary\r\n";
$message .= "Content-Type: text/plain; charset=UTF-8\r\n";
$message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$message .= "Test de mail.\r\n";
# -=-=-=- ATTACHMENT
$message .= "--$mime_boundary\r\n";
$message .= 'Content-Type: application/pdf; name="test.pdf"'."\r\n";
$message .= 'Content-Transfer-Encoding: base64'."\r\n";
$message .= 'Content-Disposition:attachement; filename="test.pdf"'."\r\n\r\n";
$message .= chunk_split(base64_encode(file_get_contents('./test.pdf')))."\r\n";
$message .= "--$mime_boundary--\r\n\r\n";
# -=-=-=- SEND MAIL
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed"; |
Le même script plus simple sans multipart (sans boundary) fonctionne très bien.
J'arrive à envoyer soit un mail avec du texte, soit un mail avec une pièce jointe mais pas les 2 à la fois.
En fait, lorsque je reçois le mail dans outlook et que je regarde le paramètre qui me sert de boundary, cela ne correspond pas à ce que j'ai mis dans mon script php...
Je pense que le problème vient de là mais je ne sais pas comment le résoudre.
Auriez-vous une idée ?
Merci d'avance
Voici les scripts qui fonctionne chez moi en environnement windows XP avec MovAmp.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
# -=-=-=- MAIL HEADERS
$to = "moi@moi.com";
$subject = "Test";
$headers = "From: Our Company <company@ourcompany.com>\r\n";
$headers .= "Reply-To: Our Company <company@ourcompany.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative;\r\n";
# -=-=-=- ATTACHMENT
$message = 'Content-Type: application/pdf; name="test.pdf"'."\r\n";
$message .= 'Content-Transfer-Encoding: base64'."\r\n";
$message .= 'Content-Disposition:attachement; filename="test.pdf"'."\r\n\r\n";
$message .= chunk_split(base64_encode(file_get_contents('./test.pdf')))."\r\n";
# -=-=-=- SEND MAIL
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed"; |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
# -=-=-=- MAIL HEADERS
$to = "moi@moi.com";
$subject = "Test";
$headers = "From: Our Company <company@ourcompany.com>\r\n";
$headers .= "Reply-To: Our Company <company@ourcompany.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative;\r\n";
# -=-=-=- TEXT EMAIL PART
$message = "Content-Type: text/plain; charset=UTF-8\r\n";
$message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$message .= "Test de mail.\r\n";
# -=-=-=- SEND MAIL
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed"; |