[php] envoyer un mail avec une pièce jointe
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[php] envoyer un mail avec une pièce jointe
Hello,
Je cherche à réaliser un formulaire qui me permette d'envoyer un mail, via php, avec une pièce jointe (avec limitation de taille).
Jusqu'ici, tout ce que je trouve m'envoie le mail, mais pas la pj...
Est-ce que quelqu'un aurait une solution simple à proposer ?
Merci
Je cherche à réaliser un formulaire qui me permette d'envoyer un mail, via php, avec une pièce jointe (avec limitation de taille).
Jusqu'ici, tout ce que je trouve m'envoie le mail, mais pas la pj...
Est-ce que quelqu'un aurait une solution simple à proposer ?
Merci
-

Audiofeeline - WRInaute accro

- Messages: 5181
- Inscription: Jeu Oct 20, 2005 19:47
Upload le fichier sur le serveur et joint le lien dans l'email. 
-

ptit_mousse - WRInaute discret

- Messages: 66
- Inscription: Mar Déc 19, 2006 13:24
Allé un petit bout de code, c'est toujours sympa le week-end et au moins on ne fait appel qu'a du pur PHP bien de chez nous... Enfin j'espère ne pas avoir fait d'erreur !
- Code: Tout sélectionner
// Destinataire du mail
$destination = 'destinataire@example.com';
// Expediteur du mail
$expediteur = 'expediteur@example.com';
// sujet du mail
$sujet = 'Mail avec PJ';
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: $expediteur\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Oh un mail !</BODY></HTML>";
// Traitement pour attacher une PJ
// D'abord on lit le fichier
$fichier = 'c:\temp\son.wav';
$contenu = file_get_contents($fichier);
$attachement = "------=$limite\n";
// Dans mon exemple, il s'agit d'un fichier wav, il faut mettre le bon mime type
$attachement .= "Content-Type: audio/x-wav; name=\"fichier.wav\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"fichier.wav\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);
Bonjour,
J'intérviens rapidement (et brièvement aussi) dans votre discussion car j'ai eu des problèmes:
J'ai fait des testes en mettant comme suivant:
// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);
Je reçois une grande liste de caractères (collés au message Oh un mail !------=_parties_0b4....db Content-Type) dans le corps du message et sans le fichier en pièce jointe.
et aussi un autre teste:
// enfin on envoi le mail
mail($destination, $sujet, $texte, $headers.$attachement);
Je reçois le fichier en pièce jointe mais sans le texte dans le corps du message.
Y a-t-il une solution/explication?
Merci d'avance de votre aide.
Merci encore.
J'intérviens rapidement (et brièvement aussi) dans votre discussion car j'ai eu des problèmes:
J'ai fait des testes en mettant comme suivant:
// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);
Je reçois une grande liste de caractères (collés au message Oh un mail !------=_parties_0b4....db Content-Type) dans le corps du message et sans le fichier en pièce jointe.
et aussi un autre teste:
// enfin on envoi le mail
mail($destination, $sujet, $texte, $headers.$attachement);
Je reçois le fichier en pièce jointe mais sans le texte dans le corps du message.
Y a-t-il une solution/explication?
Merci d'avance de votre aide.
Merci encore.
Re: [php] envoyer un mail avec une pièce jointe
Bonjour à tous,
Dsl de réveiller un topic de quelque temps mais en cherchant sur Google c'est ici qu'on arrive ^^"
Donc voila ça fait un moment que je cherchais un scripte pour envoyer une pièce joint avec la fonction mail(), j'ai tenté plusieurs scripte, aucun ne marchait... Le meilleur que j'ai trouvé est celui donner ci dessus par ptit_mousse (merci en même temps
) car il fonctionnait déjà mieux que d'autres. Je ne sais pas si ça vient de moi m'enfin bon... xD
Je voulais envoyer un e-mail avec une pièce jointe en html et malgré les modifications à faire (Content-Type: text/html ...) ça ne marchai toujours pas.
Mais aujourd'hui j'ai trouvé la solution : il manquait un "\n" ici :
$attachement = "\n------=$limite\n";
Ou sinon on peut le mettre à la fin du texte (dans l'exemple après la balise </html>)
J'ai eut le même bug que belaadel (juste au dessus) et en mettant un retour a la ligne tout s'arrange chez moi ^^
Bref voila le code complet fonctionnel chez moi à 100% pour envoyer un fichier html : (ce qui est entre [crochet] est à changer chez vous)
Dsl de réveiller un topic de quelque temps mais en cherchant sur Google c'est ici qu'on arrive ^^"
Donc voila ça fait un moment que je cherchais un scripte pour envoyer une pièce joint avec la fonction mail(), j'ai tenté plusieurs scripte, aucun ne marchait... Le meilleur que j'ai trouvé est celui donner ci dessus par ptit_mousse (merci en même temps
Je voulais envoyer un e-mail avec une pièce jointe en html et malgré les modifications à faire (Content-Type: text/html ...) ça ne marchai toujours pas.
Mais aujourd'hui j'ai trouvé la solution : il manquait un "\n" ici :
$attachement = "\n------=$limite\n";
Ou sinon on peut le mettre à la fin du texte (dans l'exemple après la balise </html>)
J'ai eut le même bug que belaadel (juste au dessus) et en mettant un retour a la ligne tout s'arrange chez moi ^^
Bref voila le code complet fonctionnel chez moi à 100% pour envoyer un fichier html : (ce qui est entre [crochet] est à changer chez vous)
- Code: Tout sélectionner
<?php
//Auteur : ptit_mousse
// Destinataire du mail
$destination = "[e-mail du destinataire]";
// sujet du mail
$sujet = "[sujet du message]";
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: \"[Nom de l'expediteur]\" <[adresse e-mail de l'expéditeur]>\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Oh un mail !</BODY></HTML>";
// Traitement pour attacher une PJ
// D'abord on lit le fichier
$fichier = '[nom du fichier]';
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Dans mon exemple, il s'agit d'un fichier html, il faut mettre le bon mime type
$attachement .= "Content-Type: text/html; name=\"[nom du fichier]\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"[nom du fichier]\"\n\n";
// Ca y est on joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// enfin on envoi le mail
mail($destination, $sujet, $texte.$attachement, $headers);
?>
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Yahoo poursuit les propriétaires de 1763 noms de domaine
- Barre d'outils Google pour Firefox : version 3
- Google écrit parfois au webmaster en cas de blacklistage
- Gmail, le service de mail de Google, sorti le 1er avril 2004
- Picasa Web Albums en français
- Marketing viral et référencement
- Le partage des tags dans Google Reader
- Comment envoyer un ping à Google Blog Search
- Google souhaite lever plus de 2 milliards de dollars
- Ecrire un sitemap pour Google News
Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier, Google SketchUp, Picasa Web Albums
- Transformer des simples citations de votre site en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum