ENVOI DE MAIL AVEC PIECE JOINTE

pouda Messages postés 264 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 octobre 2014 - 1 oct. 2004 à 13:50
cs_mooez Messages postés 2 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 5 janvier 2011 - 5 août 2009 à 15:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26501-envoi-de-mail-avec-piece-jointe

cs_mooez Messages postés 2 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 5 janvier 2011
5 août 2009 à 15:38
Bonjour,

Est il possible d'envoyer le mail avec une pièce jointe sans passer par le formulaire. C'est a dire avec uniquement l'emplacement du fichier sur le serveur.

merci
sapience Messages postés 2 Date d'inscription vendredi 28 juillet 2006 Statut Membre Dernière intervention 16 septembre 2008
16 sept. 2008 à 10:44
Bonjour,

oubliez mon message précédent ! J'ai trouvé, il faut juste que je me repose un peu....
et que j'enlève mes 't' au mot tranfert :
"Content-Transfer-Encoding" et non "Content-Transfert-Encoding"

bonne journée
sapience Messages postés 2 Date d'inscription vendredi 28 juillet 2006 Statut Membre Dernière intervention 16 septembre 2008
15 sept. 2008 à 16:55
Bonjour,
j'ai des soucis avec l'envoi de fichiers attachés de type texte !
Je reçois bien un email avec mes 5 fichiers attachés mais le contenu des fichiers reçu est toujours codé en base 64 !
Est-ce que quelqu'un peut m'aider ?
Voici mon code :

$aFicPieceJointe[] = "$fic1.txt";
$aFicPieceJointe[] = "$fic2.txt";
$aFicPieceJointe[] = "$fic3.txt";
$aFicPieceJointe[] = "$fic4.txt";
$aFicPieceJointe[] = "$fic5.txt";

$objet_mail = "bidon"; // objet du mail
$desti_mail = "bidon@bidon.com";// destinataire

// permet de définir les différentes parties du mail
$limite = "----=_Part_".md5(uniqid(rand()));

// headers du mail
$headers ="From: bidon@bidon.com\n";
$headers .="MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary="".$limite.""\r\n";

// corps du message
// partie texte
$texte = "--".$limite."\n";
$texte .= "Content-Type: text/plain; charset="iso-8859-1"\n";
$texte .= "Texte du mail bidon\n\n";

// fichiers joints à attacher
$attachement = "";

// tableau des fichiers à mettre en pièces jointes
if (is_array($aFicPieceJointe))
{
for ($i=0 ; $i<count($aFicPieceJointe) ; $i++)
{
$attachement .= "--".$limite."\n";
$attachement .= "Content-Type: text/plain; charset="iso-8859-1" name="".$aFicPieceJointe[$i].""\n";
$attachement .= "Content-Transfert-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename="".$aFicPieceJointe[$i].""\n\n";

// lecture du fichier présent sur le serveur
$fd = fopen($aFicPieceJointe[$i],"rb");
$contenu = fread($fd,filesize($aFicPieceJointe[$i]));
fclose($fd);

// encodage en base64 pour que le fichier soit lisible
$attachement .= chunk_split(base64_encode($contenu));
}

// on ferme ensuite toutes les parties du mail
$attachement .= "\n\n--".$limite."--\n\n";

// on envoi le mail
if (mail($desti_mail,$objet_mail,$texte.$attachement,$headers))
{
// envoi réussi
}
else
{
// envoi raté
}

}// if (is_array($aFicPieceJointe))

Merci d'avance.
jisse_fr Messages postés 11 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 mars 2011
24 déc. 2007 à 11:56
Personnellement j'ai utilisé le code du message posté par creation3w le 14/02/2007, et ca fonctionne très bien.
Matcrash Messages postés 1 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 10:34
Moi j'ai des souci, je recois bien le mail avec la pièce jointe mais elle s'appelle "-pas de nom de fichier-2-", sans extension et quand je remet l'extension et que je l'ouvre il m'affiche tout un tas de caractère... quelqu'un pourrait m'aider s'il vous plait ???
archaic Messages postés 1 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 30 juillet 2007
30 juil. 2007 à 10:40
merci beaucoup, ça marche nikel !
merkhaled Messages postés 26 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 8 octobre 2007
19 févr. 2007 à 20:39
excellente source, je met 9/10, domage que le script est fait uniquement pour deux pièces jointes, vous me direz on peut ajouter un troisième ficher... est ce qu'il y a une possibilité de modifier cette fonction pour qu'on puisse ajouter autant de pièces jointes qu'on veut sans a avoir a passer tous ces paramètres?
exemple : array $pieces[][]
dont

pieces[0][0] :nom
pieces[0][1] :type
pieces[0][2] :nom

pieces[1][0] :nom
pieces[1][1] :type
pieces[1][2] :nom


Merci d'avance pour ceux qui participent








www.khassur.Fr
creation3w Messages postés 2 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 février 2007
14 févr. 2007 à 12:15
désolé je connais la balise du forum pour insertion de code de plus je peux pas modifer mon post ;(
creation3w Messages postés 2 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 février 2007
14 févr. 2007 à 12:12
Bonjour,
Si le code marche je pense que pour ceux pour qui ça ne marche pas c'est qu'ils savent pas qu'il faut faire appel à une fonction par ailleur j'ai modifié le script pour l'envoi de deux pieces jointes, Par ailleur ça marche avec hotmail mais il est reçu en spam mais ça je pense que ça viens de mon serveur mail ;)
alors pour ceux qui ne savent pas vous créer un fichier php dans lequel vous mettez le code suivant :

badr07 Messages postés 53 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 15 novembre 2006
23 août 2006 à 17:34
Marche pas ton code...
1/10
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
21 juil. 2006 à 16:16
Slt tous, ca date mais ce code marche bien sauf que j'ai le meme probleme que Kartouche...la taille du fichier envoyé est limité...comment y remedier ?

Merci a+
Cbil
cs_kartouche Messages postés 2 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 26 octobre 2005
26 oct. 2005 à 14:13
salut,
cela fait deux jours que je m'arrache les cheveux!!!!
le script fonctionne bien ms j'ai un souci avec la piece jointe...

je veux envoyer un fichier texte;
si le fichier fais environ 200 octets ca marche;
si il fait plus, le reste des infos est innutilisable!!!!

Quelqu'un a t il ce probleme???
dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
18 août 2005 à 10:11
j'ai repris le code pour faire un mail avec plusieurs pieces jointes
il a fallu faire pas mal de modification (par exemple pour lire les fichiers il fau mettre 'rb' et non pas pas 'r' mais la base est bonne.
par contre je n'arrive pas a voir le texte du mail.
J'ai changer le type en text/html ce qui correspond au corps de mon mail mais rien ne s'affiche ;(
cs_aubertjp Messages postés 1 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 5 juin 2005
5 juin 2005 à 19:55
j'ai utilisé ce code avec une immense satisfaction: ça marche très bien. Seul problème: le titre de la pièce jointe, tel qu'il apparaît dans le mail du destinataire, n'a vraiment plus rien à voir avec le titre initial: c'est quelque chose comme: _var_tmp_php68rBVt.doc
Ce n'est pas très grave, car il suffit d'ouvrir la pièce pour savoir ce que c'est, mais quand même ce serait plus convivial si la pièce jointe gardait le titre qu'elle porte dans le disque dur de l'ordinateur de l'émetteur.
Y a-t-il une solution?

Jean Pierre
spirarahal Messages postés 1 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 15:21
Le code est bien ;).
Tu as penser à un exemple d'envoi de mail avec plusieurs fichiers attachés?

Merci de le communiqué, si tu en as un.
cs_danou Messages postés 3 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 2 décembre 2004
2 déc. 2004 à 09:53
t'es sympa toi, mais qu'est-ce qu'on met dans la variable $typemime

t'aurais pu au moins donner l'exemple d'appel à la fonction mail_attachement
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
1 oct. 2004 à 18:22
Ahhhhhhhh ça me rassure, j'en perdait mon php =p La c'est correct , je préfère ^^

Il serait intéressant que tu précise les différents type mime (pour la variable $typemime) qui sont accpter =)

La source est propre c'est bien.

Par contre je me demande si il ne manque pas des " -- " après les $limite entre les parties du mail.
cs_plopman Messages postés 67 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 13 septembre 2006
1 oct. 2004 à 17:57
Joli code :) Moi j'aime bien ! Dis donc magidev tu publies plus de 5 codes par semaine :p
Allez 7/10
Plopman
Utilisateur anonyme
1 oct. 2004 à 17:11
Voila, l'erreur est corrigée, je m'était trompé de source lol ;-)
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
1 oct. 2004 à 14:35
Alors là j'avoue que ça me semble très très ambigue ton code.... Je n'ai pas testé mais à une première lecture :

Où est l'envoie avec pièce jointe ? Je ne vois que la connection à un serveur mail... Oo

J'aime le if (!$connection) return true Oo

Ce que je vois dans ton code c'est un checker de mail c'est tout :(

getmxrr pour info retourne la liste des serveur mail trouvé sur l'host envoyé en paramètre. (d'après ce que j'ai compris de php.net)

Et puis au minimum tape ton code clairement, indique la véritable source, met des commentaires...

(désolé c'est pas contre toi)
pouda Messages postés 264 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 octobre 2014
1 oct. 2004 à 13:50
heuu stp tu peux commenter la fonction getmxrr car je ne la comprend pas trop
Rejoignez-nous