Envoyer un courrier avec un fichier attache en PHP
2 réponses
Kiriasse
Bonjour,
J'ai trouvé sur Internet un petit programme composé de deux fichiers, un
fichier sendmail.html et un fichier sendmail.php.
On doit placer ces deux fichiers dans un même répertoire sendmail du serveur
sur lequel on doit créer aussi un répertoire upload de même niveau que le
répertoire sendmail.
Le fichier sendmail.html est un formulaire qui permet à un visiteur du site
de saisir son nom, son adresse de courrier électronique, l'objet et le texte
du message et de sélectionner sur son disque un fichier (par exemple
C:\MonRep\LisezMoi.txt) et à envoyer au "webmaster" du site le message en
question avec le fichier LisezMoi.txt en pièce jointe.
Et ça marche parfaitement. Le fichier LisezMoi.txt est "uploadé" dans le
répertoire upload puis attaché au courrier puis supprimé sur le serveur.
J'ai essayé de ne pas utiliser le formulaire en appelant sendmail.php
directement depuis le navigateur.
Si je rentre la ligne suivante :
www.monsite.fr/sendmail/sendmail.php?dest=moi@wanadoo.fr&email=visiteur@free.fr&subject=Essai&msg=Bonjour
je reçois bien à mon adresse moi@wanadoo.fr un message (sans fichier attaché
évidemment) dont l'expéditeur est visiteur@free.fr.
Mais là où rien ne va plus, c'est si je veux joindre un fichier attaché.
J'ai essayé de compléter la ligne de commande par le fichier LisezMoi.txt
avec son chemin d'accès complet.
Par exemple : &filename=C:\Aa\LisezMoi.txt
J'ai essayé (au pifomètre) un tas de trucs, sans aucun succès.
MA QUESTION :
Est-il possible de faire ça ?
Si oui, connaissez-vous un exemple de code qui fait ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Le fichier sendmail.html est un formulaire qui permet à un visiteur du site de saisir son nom, son adresse de courrier électronique, l'objet et le texte du message et de sélectionner sur son disque un fichier (par exemple C:MonRepLisezMoi.txt) et à envoyer au "webmaster" du site le message en question avec le fichier LisezMoi.txt en pièce jointe.
J'ai essayé de ne pas utiliser le formulaire en appelant sendmail.php directement depuis le navigateur. [...]
Mais là où rien ne va plus, c'est si je veux joindre un fichier attaché. J'ai essayé de compléter la ligne de commande par le fichier LisezMoi.txt avec son chemin d'accès complet. Par exemple : &filename=C:AaLisezMoi.txt J'ai essayé (au pifomètre) un tas de trucs, sans aucun succès.
MA QUESTION : Est-il possible de faire ça ?
Non, ce n'est pas possible. Quand tu appelles le script PHP directement, c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la ligne de commande (y compris le /contenu/ du fichier, pas seulement son nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas le faire. Il faut absolument passer par POST, et donc par un formulaire.
-- Olivier Miakinen Aidez Saburi à rester près de sa famille et poursuivre ses études en France, signez la pétition : <http://www.fcpe94.ouvaton.org/article_petition.php3?id_article=9>
Le fichier sendmail.html est un formulaire qui permet à un visiteur du site
de saisir son nom, son adresse de courrier électronique, l'objet et le texte
du message et de sélectionner sur son disque un fichier (par exemple
C:MonRepLisezMoi.txt) et à envoyer au "webmaster" du site le message en
question avec le fichier LisezMoi.txt en pièce jointe.
J'ai essayé de ne pas utiliser le formulaire en appelant sendmail.php
directement depuis le navigateur. [...]
Mais là où rien ne va plus, c'est si je veux joindre un fichier attaché.
J'ai essayé de compléter la ligne de commande par le fichier LisezMoi.txt
avec son chemin d'accès complet.
Par exemple : &filename=C:AaLisezMoi.txt
J'ai essayé (au pifomètre) un tas de trucs, sans aucun succès.
MA QUESTION :
Est-il possible de faire ça ?
Non, ce n'est pas possible. Quand tu appelles le script PHP directement,
c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la
ligne de commande (y compris le /contenu/ du fichier, pas seulement son
nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas
le faire. Il faut absolument passer par POST, et donc par un formulaire.
--
Olivier Miakinen
Aidez Saburi à rester près de sa famille et poursuivre ses études
en France, signez la pétition :
<http://www.fcpe94.ouvaton.org/article_petition.php3?id_article=9>
Le fichier sendmail.html est un formulaire qui permet à un visiteur du site de saisir son nom, son adresse de courrier électronique, l'objet et le texte du message et de sélectionner sur son disque un fichier (par exemple C:MonRepLisezMoi.txt) et à envoyer au "webmaster" du site le message en question avec le fichier LisezMoi.txt en pièce jointe.
J'ai essayé de ne pas utiliser le formulaire en appelant sendmail.php directement depuis le navigateur. [...]
Mais là où rien ne va plus, c'est si je veux joindre un fichier attaché. J'ai essayé de compléter la ligne de commande par le fichier LisezMoi.txt avec son chemin d'accès complet. Par exemple : &filename=C:AaLisezMoi.txt J'ai essayé (au pifomètre) un tas de trucs, sans aucun succès.
MA QUESTION : Est-il possible de faire ça ?
Non, ce n'est pas possible. Quand tu appelles le script PHP directement, c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la ligne de commande (y compris le /contenu/ du fichier, pas seulement son nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas le faire. Il faut absolument passer par POST, et donc par un formulaire.
-- Olivier Miakinen Aidez Saburi à rester près de sa famille et poursuivre ses études en France, signez la pétition : <http://www.fcpe94.ouvaton.org/article_petition.php3?id_article=9>
Kiriasse
Merci. Je subodorais bien ce que vous dites mais comme je ne suis pas très fort en PHP, je suis content d'avoir eu confirmation. Cordialement. JCM
== "Olivier Miakinen"
Non, ce n'est pas possible. Quand tu appelles le script PHP directement, c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la ligne de commande (y compris le /contenu/ du fichier, pas seulement son nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas le faire. Il faut absolument passer par POST, et donc par un formulaire.
Merci.
Je subodorais bien ce que vous dites mais comme je ne suis pas très fort en
PHP, je suis content d'avoir eu confirmation.
Cordialement.
JCM
== "Olivier Miakinen"
Non, ce n'est pas possible. Quand tu appelles le script PHP directement,
c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la
ligne de commande (y compris le /contenu/ du fichier, pas seulement son
nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas
le faire. Il faut absolument passer par POST, et donc par un formulaire.
Merci. Je subodorais bien ce que vous dites mais comme je ne suis pas très fort en PHP, je suis content d'avoir eu confirmation. Cordialement. JCM
== "Olivier Miakinen"
Non, ce n'est pas possible. Quand tu appelles le script PHP directement, c'est par une commande HTTP GET, et dans ce cas tout doit passer dans la ligne de commande (y compris le /contenu/ du fichier, pas seulement son nom). Comme il y a une limitation sur la taille de l'URL, tu ne peux pas le faire. Il faut absolument passer par POST, et donc par un formulaire.