Mail et fichier joint

Eléphant du PHP | 65 Messages

21 août 2010, 13:52

Bonjour, depuis hier j'essaie de faire un formulaire qui peut envoyer des pièces jointes par email. Mon formulaire fonctionne très bien, cependant je n'arrive pas à envoyer de pièce jointe. En fait une pièce jointe est envoyé dans le dernier code que j'ai essayé, cependant le fichier n'a seulement le nom de la pièce jointe. Voici mon code :

         //ATTACHMENT//////////////////////////////////
		$name_file = $_FILES['file']['name']; 
		$source=$_FILES['file']['tmp_name'];
		
		move_uploaded_file($source, "./".$name_file); 
     //Notez que le fichier est présent sur le serveur, donc aucun problème

                if($name_file!="")
		{
			$file = $name_file;
			$fp = fopen($file, "rb");  
			$attachment = fread($fp, filesize($file));
			fclose($fp);
			
			$attachment = chunk_split(base64_encode($attachment));
		}

                // La boucle qui envoi mon message, à notez que j'ai enlever certaines variable, puisque les emails sont envoyés correctement
                   while($i < $nombre){
	
			$boundary = '' . md5( uniqid ( rand() ) );
  			$headers  = "MIME-Version: 1.0\r\n";
  			$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
			$headers = 'From: '.$realname.' <'.$from.'>' . "\r\n" .'Reply-To: '.$replyto.'' . "\r\n";
     		        $headers .= 'Bcc: '.$tableau_des_mail[$i].'' . "\r\n";
			
			$headers .= 'Content-Type: text/html; charset=ISO-8859-1';
			$headers .= 'Content-Transfer-Encoding: quoted-printable';
			$headers .= 'Content-Disposition: inline';
			
			$headers .= 'Content-Type: image/jpeg; name="'.$name_file.'"'; // J'ai essayer d'autres variables, mais les autres me retournes des caractères illisibles
			$headers .= 'Content-Transfer-Encoding: base64';
			$headers .= 'Content-Disposition: attachment; filename="'.$name_file.'"';
			$msg = "".$message . "\r\n";
		
			mail($none,$subject,$msg,$headers);
			$i++;
		}

		echo "Emails sent successfully";
Merci de pouvoir m'aider
Mieux vaut avoir un humour douteux que de ne pas en avoir du tout!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 août 2010, 14:26

Les informations relatives à la pièce jointe doivent être placées dans le corps du message, pas dans l'entête :)

Et accessoirement, tu as bien lu le fichier et récupéré son contenu dans $attachment, mais si tu ne l'utilises pas ensuite dans ton mail, ça va marcher beaucoup moins bien ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 65 Messages

21 août 2010, 15:29

$attachment me retourne une chaine de caractère extrêmement longue et illisible

Le code que j'ai :
                $boundary = '' . md5( uniqid ( rand() ) );
  			$headers  = "MIME-Version: 1.0\r\n";
  			$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
			$headers = 'From: '.$realname.' <'.$from.'>' . "\r\n" .'Reply-To: '.$replyto.'' . "\r\n";
     		        $headers .= 'Bcc: '.$tableau_des_mail[$i].'' . "\r\n";
			
			$headers .= 'Content-Type: text/html; charset=ISO-8859-1';
			$headers .= 'Content-Transfer-Encoding: quoted-printable';
			$headers .= 'Content-Disposition: inline';
			
			$msg = 'Content-Type: image/jpeg; name="'.$attachment.'"';
			$msg .= 'Content-Transfer-Encoding: base64';
			$msg .= 'Content-Disposition: attachment; filename="'.$attachment.'"';
			$msg .= "".$message . "\r\n";
		
			mail($none,$subject,$msg,$headers);
est-ce que
$headers .= 'Content-Type: text/html; charset=ISO-8859-1';
$headers .= 'Content-Transfer-Encoding: quoted-printable';
$headers .= 'Content-Disposition: inline';
devrait également être dans le message?
Mieux vaut avoir un humour douteux que de ne pas en avoir du tout!

Eléphant du PHP | 65 Messages

22 août 2010, 16:18

Pourquoi est-ce que mon fichier joint ressemble à ça? :

Content-Type: image/jpeg; name="/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
SlBFRyB2NjIpLCBxdWFsaXR5ID0gODUK/9sAQwAFBAMDBAQEBAQFBwYFBQUHBwcHCAwPEQwJCwsP
FhMREQ8REhIRFRoUExccHRoYIRgREx8fHx0iJCIXHCQeHx4e/9sAQwEFBQUHBgcOCAgOHhQRFB4e
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgCXAHA
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi
o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E
AB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR
BAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A
5aLRpry0NjLuV5h++jVD+6OeAB79zz+lZy6dd2OpLcmNYY4Igk5Zsb8H5u/fof1ro7zxNBevHLax
4t4yI3mLEM2MKMPheMY+8D64FUr7+y4rZStskhu2MoeSQsZVz/DwuM/05rxlPmWp1OMSqtjrsuiN
GbJ7Ufa1YSqDwQWOc54OOmMcVTg0wQSRC7DtPN5ogAPVV4zxnrjp6VJHqUaXkNq1m9s1tFId38Mo
ZSMNgYyB0/nW1HDqMVv/AGltWdrcvGwI+aNXHO0E9ACOg71U7XvFExTvdiXD30cOoWWoeYUkjRzD
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
Mieux vaut avoir un humour douteux que de ne pas en avoir du tout!

Eléphant du PHP | 65 Messages

22 août 2010, 16:58

Mieux vaut avoir un humour douteux que de ne pas en avoir du tout!