Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mail() + PJ

6 réponses
Avatar
Le Fou
Bonjour,

Sur un de mes sites j'ai un formulaire qui permet d'envoyer un message à
mon adresse e-mail via un script PHP utilisant la fonction mail().

J'aimerais que les internautes puissent joindre un fichier (image) de
leur disque dur à ce message.
Or tous les scripts que j'ai trouvés, se contentent d'uploader le
fichier image sur le serveur du site...

Connaissez-vous un script qui récupère le fichier sur le disque de
l'internaute et l'envoie en pièce jointe à une adresse e-mail ?

Merci.

--
A' tchao

Le Fou
http://shippylelivre.free.fr/
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/

6 réponses

Avatar
Pascal
Le Fou a écrit :
Bonjour,



Bonjour,

Le choix du pseudo, c'est pour rassurer ? ;-)

Sur un de mes sites j'ai un formulaire qui permet d'envoyer un message à
mon adresse e-mail via un script PHP utilisant la fonction mail().



Jusque-là, rien de mystérieux.

J'aimerais que les internautes puissent joindre un fichier (image) de
leur disque dur à ce message.
Or tous les scripts que j'ai trouvés, se contentent d'uploader le
fichier image sur le serveur du site...



Ben oui, c'est le processus classique :

- Le fichier est chargé temporairement sur le serveur.
- Le script PHP de traitement incorpore le fichier à l'e-mail et envoie
ça à l'adresse passée, avec la fonction "mail()" ou autre.
- Entre temps, le script peut stocker le fichier où on veut.

Connaissez-vous un script qui récupère le fichier sur le disque de
l'internaute et l'envoie en pièce jointe à une adresse e-mail ?



Là, il y a peut-être quelques problèmes d'interprétation.

D'abord, aucun script serveur ne peut "récupérer" un fichier "sur" un
poste client. Cela créerait de sérieux trous de sécurité.

Donc, au mieux, un premier script fabrique une page Web affichant le
formulaire demandant les coordonnées et le choix du fichier. Ensuite, un
deuxième script reçoit ces données et les traite comme il se doit.
Enfin, un dernier script confirme souvent l'interaction.

D'autre part, l'appellation "pièce jointe" est un peu trompeuse en
regard de son équivalent courrier, sauf à considérer que l'e-mail
correspond à l'enveloppe, et non pas à la lettre d'accompagnement.

En réalité, le fichier est le plus souvent incorporé dans le corps de
l'émail, avec un système de séparation de données basé sur des
délimiteurs (boundary) et les types MIME.
Mais il peut aussi s'exprimer sous forme de lien externe dans l'e-mail.
C'est le cas dans beaucoup de messages publicitaires ou de newsletters,
dont les fichiers image restent stockés sur un serveur HTTP. Ils sont
appelés au moment de la lecture de l'e-mail et font généralement l'objet
d'un message de sécurité autorisant ou non ce transfert.

Dans tous les cas, chaque e-mail envoyé par SMTP ne correspond qu'à un
seul fichier transféré. Il en est de même pour chaque e-mail reçu par
POP ou IMAP, car s'il y a des liens externes il faut un autre protocole
pour les récupérer (HTTP par ex.).

Pour répondre de façon plus concrète, il existe plusieurs bibliothèques
PHP permettant de gérer, pour les envois complexes d'e-mail, toutes les
fonctionnalités requises, comprenant entre autres :

- L'encodage des données.
- La génération de délimiteurs.
- La fusion des données dans le corps de l'e-mail.
- La génération d'entêtes additionnelles (copie, copie cachée, etc.).
- L'envoi successif à plusieurs destinataires.
- Le choix du système de messagerie sortante (mail(), sendmail, SMTP).

Pour ma part, j'ai déjà utilisé avec satisfaction cette bibliothèque :
http://phpmailer.worxware.com/index.php?pg=phpmailer
Mais je suis sûr qu'il y a des tas d'autres réponses avec une simple
recherche Google du type "php mail library" !

Merci.



Cordialement,
Pascal
Avatar
Le Fou
Le 09/03/2010 23:52, Le Fou a écrit :
Bonjour,

Sur un de mes sites j'ai un formulaire qui permet d'envoyer un message à
mon adresse e-mail via un script PHP utilisant la fonction mail().

J'aimerais que les internautes puissent joindre un fichier (image) de
leur disque dur à ce message.
Or tous les scripts que j'ai trouvés, se contentent d'uploader le
fichier image sur le serveur du site...

Connaissez-vous un script qui récupère le fichier sur le disque de
l'internaute et l'envoie en pièce jointe à une adresse e-mail ?

Merci.



Ce genre de script n'existerait pas ????

--
A' tchao

Le Fou
http://shippylelivre.free.fr/
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
Avatar
Le Fou
Le 13/03/2010 02:07, Pascal a écrit :

Le choix du pseudo, c'est pour rassurer ? ;-)



Le PHP me rend fou ;-)


(...)
Pour répondre de façon plus concrète, il existe plusieurs bibliothèques
PHP permettant de gérer, pour les envois complexes d'e-mail, toutes les
fonctionnalités requises, comprenant entre autres :
(...)
Pour ma part, j'ai déjà utilisé avec satisfaction cette bibliothèque :
http://phpmailer.worxware.com/index.php?pg=phpmailer
Mais je suis sûr qu'il y a des tas d'autres réponses avec une simple
recherche Google du type "php mail library" !



Merci bien ! Je vais chercher de ce coté là.

--
A' tchao

Le Fou
http://shippylelivre.free.fr/
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/

=============== Note des modérateurs :
Merci de penser à rajouter .INVALID à la fin d'une adresse
invalide.
Avatar
CrazyCat
Le 13/03/2010 02:07, Pascal a écrit :
Pour ma part, j'ai déjà utilisé avec satisfaction cette bibliothèque :
http://phpmailer.worxware.com/index.php?pg=phpmailer
Mais je suis sûr qu'il y a des tas d'autres réponses avec une simple
recherche Google du type "php mail library" !



Tu peux aussi utiliser la toute petite classe que j'ai faite:
<http://www.g33k-zone.org/post/2009/10/05/Envoyer-un-email-html-avec-pi%C3%A8ce-jointe-en-PHP>

--
http://www.g33k-zone.org
http://www.zeolia.net
Avatar
Pascal
CrazyCat a écrit :
Tu peux aussi utiliser la toute petite classe que j'ai faite:
<http://www.g33k-zone.org/post/2009/10/05/Envoyer-un-email-html-avec-pi%C3%A8ce-jointe-en-PHP>



J'ai jeté un oeil sur le code.
Bravo, c'est direct et efficace !
Largement suffisant pour beaucoup de projets.
L'utilisation et la réécriture sont totalement libres et tous usages ?

Cordialement,
Pascal
Avatar
CrazyCat
Réponse fort tardive suite à de petites vacances :)

Le 14/03/2010 21:40, Pascal a écrit :
J'ai jeté un oeil sur le code.
Bravo, c'est direct et efficace !
Largement suffisant pour beaucoup de projets.



Merci

L'utilisation et la réécriture sont totalement libres et tous usages ?



Oui, bien sûr. Ce que je diffuse est fait pour être utilisé, adapté,
transformé.

--
http://www.g33k-zone.org
http://www.zeolia.net