Bonjour,

Je travaille actuellement en local (Je n'ai pas encore loué un serveur) et lorsque j'envoi un mail multipart (text pur + html + image) vers ma boite yahoo, je reçois un message vide; Néanmoins les entêtes sont bien présentes.

Par contre, sur hotmail, ça marche sans problème... ça fait des heures que je cherche sur le web mais rien... svp aidez moi

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php  // SCRIPT envoi e-mail HTML avec des images
 
//------------------------------
// Déclaration des variables
//------------------------------
 
$destinataire = 'moi@yahoo.fr';
$expediteur = 'moi@domaine.com';
$reply = 'moi@hotmail.com';
$message_texte = 'Bonjour,' ."\r\n\r\n". 'Voici un message au format texte';
$message_html = '<html><body><p>Test de message</p></body></html>';
$sujet = 'Hope que xa marchera';
 
 
//-------------------------------
// Génération de la frontière
//-------------------------------
 
$frontiere = '-----=' .md5(uniqid(mt_rand()));
 
 
//--------------------------
// Headers du mail
//--------------------------
 
$entete = 'From: "Ben" <' .$expediteur. '>' ."\r\n";
$entete .= 'MIME-Version: 1.0'."\r\n";
$entete .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"\r\n';
$entete .= 'Reply-to: <'.$reply.'>'."\n";
 
 
//--------------------------
// Message texte
//--------------------------
 
$message = 'This is a multi-part message in MIME format.'."\r\n";
 
$message .= '--' .$frontiere. "\r\n"; 
$message .= 'Content-Type: text/plain; charset="iso-8859-1"' . "\r\n";
$message .= 'Content-Transfer-Encoding: 8bit' . "\r\n\r\n";
$message .= $message_texte."\r\n";  
 
 
//---------------------
// Message HTML
//---------------------
 
 $message .= '--' .$frontiere. "\r\n"; 
 
 $message .= 'Content-Type: text/html; charset="utf-8"'."\n";
 $message .= 'Content-Transfer-Encoding: 8bit'."\r\n\r\n"; 
 $message .= $message_html."\r\n"; 
 
 $message .= '--'.$frontiere."\r\n"; 
 
 //--------------------
 // Piece Jointe
 //--------------------
 
 $fp = fopen('bibi.jpg', 'rb');
 $fichierAttache = fread($fp, filesize('bibi.jpg'));
 $fichierAttache = chunk_split(base64_encode($fichierAttache));
 
$message .= 'Content-Type: image/jpeg; name="bibi.jpg"'."\r\n";
$message .= 'Content-Transfer-Encoding: base64'."\r\n";
$message .= 'Content-Disposition:attachement; filename="bibi.jpg"'."\r\n\r\n";
 
$message .= $fichierAttache."\r\n"; 
 
$message .= "\r\n\r\n";
 
 $message .= '--'.$frontiere. '--'. "\r\n"; 
 
if (mail($destinataire,$sujet,$message,$entete)) 
{ 
    echo 'Le mail a été envoyé'; 
} 
else 
{ 
    echo 'Le mail n\'a pu être envoyé'; 
} 
 
?>