Bonsoir,
voici un code de mail avec pièce attachée qui marche bien pour la plupart des fichiers mais par pour tous (avec l'exemple que j'ai, il envoit bien le mail, mais le fichier que je reçois n'est pas bon (c'est une image, ce qu'il reconnaît bien, mais il m'affiche une croix rouge si je veux visualiser celle-ci ; pourquoi ?)
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 $nom=$_POST['nom']; $prenom=$_POST['prenom']; $msg="test"; //----------------------------------------------- //DECLARE LES VARIABLES //----------------------------------------------- $email_expediteur="---"; $email_reply="---"; $destinataire="---"; $frontiere = '-----=' . md5(uniqid(mt_rand())); //----------------------------------------------- //HEADERS DU MAIL //----------------------------------------------- $headers = 'From: "'.$nom." ".$prenom.'" <'.$email_expediteur.'>'."\n"; $headers.= 'Return-Path: <'.$email_reply.'>'."\n"; $headers.= 'MIME-Version: 1.0'."\n"; $headers.= 'Content-Type: multipart/mixed; boundary="'.$frontiere."\"\n\n"; //----------------------------------------------- //MESSAGE //----------------------------------------------- $message ='This is a multi-part/mixed message in MIME format.'."\n"; $message.='--'.$frontiere."\n"; $message.='Content-Type: text/html; charset="ISO-8859-1"'."\n"; $message.='Content-Transfer-Encoding: base64'."\n\n"; $message.=chunk_split(base64_encode(nl2br($msg)))."\n"; //----------------------------------------------- //PIECE JOINTE //----------------------------------------------- if (isset($_FILES['piece']['name'])) { $adr_piece=$_FILES['piece']['name']; $base1=basename($adr_piece); $mime=$_FILES['piece']['type']; $message.='--'.$frontiere."\n"; $message.= 'Content-Type: '.$mime.'; name='.$base1."\n"; $message.= 'Content-Transfer-Encoding: base64'."\n"; $message.= 'Content-Disposition:attachement; filename='.$base1."\n\n"; $message.= chunk_split(base64_encode(file_get_contents($adr_piece)))."\n"; } echo "envoi mail; dest=".$destinataire."<br>"; if(mail($destinataire,$sujet,$message,$headers)){ echo "mail envoye"; }
Partager