Rechercher : dans
Par :

Courrier avec pièce jointe en php

Dernière réponse le 21 jan 2009 à 20:37:16 stevie21, le 21 jan 2009 à 17:56:19 
 Signaler ce message aux modérateurs

Bonjour, je tente d'envoyer un courriel et d'y inclure une page web en php. Voici le code que j'utilise pour l'instant:

1 //=====Lecture et mise en forme de la pièce jointe
2 $fichier = fopen("JOBS.doc", "r");
3 $attachement = fread($fichier, filesize($cv));
4 $attachement = chunk_split(base64_encode("JOBS.doc"));
5 fclose($fichier);
6 //==========
7
8 //=====Création de la boundary
9 $boundary = "-----=".md5(rand());
10 $boundary_alt = "-----=".md5(rand());
11 //==========
12
13 //=====Définition du sujet
14 $sujet = "Envoi de CV";
15 //=========
16
17 //=====Création du header de l'e-mail \"WeaponsB\"<weaponsb@mail.fr>\n
18 $header = "From: $nom";
19 $header.= "Reply-to: \"WeaponsB\" <sheon@scierielandrienne.com>\n";
20 $header.= "MIME-Version: 1.0\n";
21 $header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
22 //==========
23
24 //=====Création du message
25 $message = "\n--".$boundary."\n";
26 $message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
27 $message.= "\n--".$boundary_alt."\n";
28 //=====Ajout du message au format texte
29 $message.="Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
30 $message.="Content-Transfer-Encoding: 8bit\n";
31 $message.= $message_txt."\n";
32 //==========
33
34 $message.= "\n--".$boundary_alt."\n";
35
36 //=====Ajout du message au format HTML
37 $message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
38 $message.="Content-Transfer-Encoding: 8bit\n";
39 $message.= $message_html."\n";
40 //==========
41
42 //=====On ferme la boundary alternative
43 $message.= "\n--".$boundary_alt."--\n";
44 //==========
45
46 $message.= "\n--".$boundary."\n";
47
48 //=====Ajout de la pièce jointe
49 $message.= "Content-Type: text/rfc822 [RFC822];\n name=\"cv.doc\"\n";
50 $message.= "Content-Transfer-Encoding: base64\n";
51 $message.= "Content-Disposition: attachment;\n filename=\"cv.doc\"\n";
52 $message.= "\n".$attachement."\n\n";
53 $message.= "\n--".$boundary."--\n";
54 //==========
55 //=====Envoi de l'e-mail
56 mail("splante@scierielandrienne.com",$sujet,$message,$header);


Le courriel se rend correctement sur mon adresse avec la pièce jointe. Le problème, c'est lorsque j'ouvre la pièce jointe, celle-ci est vide...

voici les messages que je reçois sur ma page de confirmation après l'envoit du courriel:

Warning: fopen(JOBS.doc) [function.fopen]: failed to open stream: No such file or directory in /home/scie8210/public_html/confirmation-envois.php on line 2

Warning: fread(): supplied argument is not a valid stream resource in /home/scie8210/public_html/confirmation-envois.php on line 3

Warning: fclose(): supplied argument is not a valid stream resource in /home/scie8210/public_html/confirmation-envois.php on line 5


Si vous pouvez m'éclairez, ce serait apprécié, merci !!

Meilleures réponses pour « courrier avec pièce jointe en php » dans :
Envoyer de gros fichiers (pièces jointes) par mail VoirLes systèmes de messagerie bloquent généralement les pièces jointes volumineuses, alors comment faire parvenir un fichier lourd (de plusieurs Mo) à son destinataire ? La solution consiste à utiliser un service d'hébergement temporaire de fichiers...
[Langages] Envoyer un mail avec pièce jointe VoirLes mails, tout comme les pages web, sont livrés avec des en-têtes (headers en anglais). Ces en-têtes servent à donner quelques détails nécessaires comme l'adresse du destinataire, celle de l'envoyeur, la date de l'envoi, le sujet du mail etc. Elles...
[Outlook Express] Pièces jointes impossibles à envoyer VoirSi Outlook Express ne peut pas envoyer les pièces jointes ajoutées à votre mail, ceci est probablement dû au fait qu'elles possèdent une taille trop volumineuse. Pour y remédier, la solution consiste à scinder les pièces jointes en plusieurs...

1

Alain_42, le 21 jan 2009 à 18:51:02

Bonsoir:

Warning: fopen(JOBS.doc) [function.fopen]: failed to open stream: No such file or directory in /home/scie8210/public_html/confirmation-envois.php on line 2

veut dire que:

2 $fichier = fopen("JOBS.doc", "r"); nepeux pas s'éxécuter soit que le fichier JOBS.doc n'existe pas sur le serveur, soit que sont orthographe n'est pas bonne soit qu'il n'est pas dans le même répertoire que le script d'envoi du mail

si tu veux envoyer un mail avec pièce jointe il existe une classe php qui va bien:

phpmailer


cherche sur G...

Répondre à Alain_42

2

stevie21, le 21 jan 2009 à 20:16:29

C'est sur que le fichier JOBS.doc ne se retrouve pas sur le serveur, je veux que l'utilisateur qui se retrouve chez lui à la maison puisse m'envoyer un document qu'il possède sur son ordinateur pour que je puisse le consulter.

Ce que je veux obtenir, ce sont des C.V. afin de les consulter, je ne peux donc pas les avoir sur mon serveur auparavant.

Pour ce qui est de phpmailer, j'ai déjà consulté un peu, mais avec peu de succés.

Répondre à stevie21

3

 Alain_42, le 21 jan 2009 à 20:37:16

c'est sur que le fichier JOBS.doc ne se retrouve pas sur le serveur

alors un script php s'éxécutant sur le serveur ne pourra jamais venir l'ouvrir par fopen

la tu n'est pas dans la bonne methode pour ce que tu veux faire

Répondre à Alain_42