Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENVOI MAIL + PIÈCE JOINTE QUI MARCHE MÊME AVEC OUTLOOK


Information sur la source

Catégorie :E-Mail / Messagerie Niveau : Initié Date de création : 13/04/2004 Date de mise à jour : 14/04/2004 11:16:51 Vu / téléchargé: 24 045 / 4 310

Note :
9 / 10 - par 7 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (28)
Ajouter un commentaire et/ou une note

Description

J'ai enfin trouvé un VRAI code d'envoi de mail avec pièces jointes qui marche avec tous les clients mail même avec outlook (voir .zip)

pour les pièces jointes changez le type de pièce si vous savez quel type de pièces seront envoyées (ici images/gif), pour mettre plusieurs pièces jointe, appelez plusieurs fois :
$m->Attach( "/home/leo/toto.gif", "image/gif", "inline" );

et changez le nom de la pièce


j'ai trouvé ce code là : http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=fr


tout ce qu'il faut savoir est expliqué dans le .html qui est dans le ZIP
 

Source

  • téléchargez le fichier zip (code + instructions) et insérez ça par exemple après votre formulaire (à adapter) :
  • include "libmail.php";
  • $m = new Mail(); // create the mail
  • $m->From( "leo@isp.com" );
  • $m->To( "destination@somewhere.fr" );
  • $m->Subject( "the subject of the mail" );
  • $m->Body( "Hello\nThis is a test of the Mail component" );
  • $m->Cc( "someone@somewhere.fr");
  • $m->Priority(4);
téléchargez le fichier zip (code + instructions) et insérez ça par exemple après votre formulaire (à adapter) :

include "libmail.php";
$m = new Mail(); // create the mail
$m->From( "leo@isp.com" );
$m->To( "destination@somewhere.fr" );
$m->Subject( "the subject of the mail" );
$m->Body( "Hello\nThis is a test of the Mail component" );
$m->Cc( "someone@somewhere.fr");
$m->Priority(4);


Conclusion

merci à Leo West pour ce très bon code
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de MetalDestroyer le 16/04/2004 10:06:56

C'est cool mais j'ai uin probleme ton code ne marche pas.
Il ne m'envoie rien pas un mail.
En fait, à ton code il te manque le message d'erreur si le l'envoie du mail à échouer.

Donc, voici ce qu'il faut ajouter :

if($m->Send()) // send the mail
{
echo "the mail below has been sent:<br><pre>", $m->Get(), "</pre>";
} else
{
echo "send failure <br>";
}

Voilà, si $m->send est nulle c que l'envoie à merder.
Par contre, s'il y a une autre modif à faire en dehors de cette fonction, dis le moi.
J'espère qu'il ne faut pas toucher au php.ini ??

signaler à un administrateur
Commentaire de ganelous le 16/04/2004 11:32:09

oui c vrai j'ai oublié d'indiquer ici $m->Send() mais dans le zip ça yé et c'est tout bien expliqué

après faut adapter la partie qui insère les données selon les besoins

et ce script marche sur un vrai serveur, sur un serveur local j'ai pas essayé (mais il faut un serveur smtp pour pouvoir envoyer quoique ce soit)

je n'ai rien touché au php.ini (de toute façon il ne m'est pas accessible sur le serveur alors...)

sinon ton script pour vérifier l'envoie et bien, j'avais fait la même chose :-)

signaler à un administrateur
Commentaire de MetalDestroyer le 16/04/2004 20:34:39

Pour le serveur smtp, je n'ai pas à m'en inquiéter, l'entreprise en dispose d'un.
Donc, en gros, pour faire fonctionner ton script, il ne faut pas toucher au php.ini ?

signaler à un administrateur
Commentaire de ganelous le 17/04/2004 11:39:28

moi j'y ai pas touché en tout cas

signaler à un administrateur
Commentaire de hbelk le 22/06/2004 18:57:18

Merci pour ce code.
je l'ai installé et ça marche trés bien sauf que sur mon outlook lorsque j'ouvre un fichiers joint il est illisible.

j'ai utilisé comme commande :
$m->Attach( "$url_attached_files$id_courrier/$array_file_name[$i]", "", "attachment" );

Merci.

signaler à un administrateur
Commentaire de abbejay le 21/07/2004 09:48:18

Ce petit prog est un petit bijou mais je n'arrive pas à lire ma pièce  jointe qui est en PDF.
Dès que je veux ouvrir la pièces, Acrobat m'envoi un message en indiquant le fichier est "endommagé".
Est ce que quelqu'un a une idée???...

signaler à un administrateur
Commentaire de abbejay le 21/07/2004 16:34:07

En fait je rectifie le programme fonctionne mais que la pièce jointe soit une image un .doc un pdf ou autre, une fois le mail arrivé la pièce est illisible.
Est ce normal???

signaler à un administrateur
Commentaire de misterphiloo le 23/07/2004 12:17:53

Je rencontre un problème lors de l'envoi de plusieurs fichiers HTML en attachment. Un seul, pas de problème pour l'instant, mais dès que j'en ai plus, par exemple 3, le 3eme est tronqué, ce qui le rend bien sûr illisible en fin de code HTML.

C'est peut-être un bug, identique à celui soumis ci-dessus pour le PDF ?

En tout cas, je ne trouve toujours pas le bug ni d'alternative ! Merci de m'aider...

signaler à un administrateur
Commentaire de WhiteMagus le 09/02/2005 15:07:00

Il faut définir la nature qe la pièce jointe. Pour une page HTML, vous mettrez par exemple :
$mail->Attach( $fichier, "text/html" );

Voilà. Pour les images, les swf, les pdf, c'est pareil.
Sinon, la source est super et elle va bien me servir.
Mais je note pas (c'est qu'une initiative et non une création).
@+ !

signaler à un administrateur
Commentaire de willstar le 09/02/2005 17:48:29

bah... meme avec ton truc là, ben pour un fichier pdf par exemple en mettant application/pdf comme type, bah ca marche pas... c'est tjs corrompu...!

signaler à un administrateur
Commentaire de nikysrc le 23/12/2005 11:37:55

Bravo pour ce script il marche vraiment bien pour l'envoi de pdf et de plusieurs pièces jointes

signaler à un administrateur
Commentaire de klapaudius le 26/03/2006 12:40:50

C'est vrai qu'il est très bien ce code mais moi j'ai un petit problème avec :

J'envois un mail vers un compte hotmail ca marche nickel et c'est très rapide.
J'envois un mail vers un compte free et là rien ne se passe je reçois rien.

Le gros soucit c'est que sur mon site à la création d'un compte j'envois automatiquement un mail de validation du compte pour être sûr de l'adresse e-mail du nouveau membre

P.S.: Le mail générer passe bien chez hotmail et n'est pas reconnu comme du Spam:

signaler à un administrateur
Commentaire de jjmaster le 14/04/2006 09:40:27

Merci pour cette source tres enrichissante.

signaler à un administrateur
Commentaire de badr07 le 03/08/2006 23:05:32

Marche pas ton code sur ifrance...
Pour les autres aussi
Nul

signaler à un administrateur
Commentaire de monsieurzouzou le 30/10/2006 16:39:42

euh il trouve pas mon fichier joint...

truc.jpg can't be found

soit je suis un gros neuneu, soit y'a un problème quelque part! J'ai vérifié l'emplacement (bien entendu) et les droits d'accès et ça marche tjs pas. Quelqu'un a une corde et un tabouret?

signaler à un administrateur
Commentaire de monsieurzouzou le 30/10/2006 17:00:19

bon en fait faut mettre un chemin absolu, apparemment sous IIS il prend pas les chemins relatifs...
ça faisait une heure que je cherchais, on va dire que c'est la fatigue

signaler à un administrateur
Commentaire de rafanel le 04/04/2008 11:18:24

salut,
trés bon source, avec une super doc.
je l'utilise sur mon site qui est chez free et tout fonctionne bien sauf si j'envoie un mail à un  destinataire qui n'est pas chez free.
As tu solution.
merci
TR

signaler à un administrateur
Commentaire de kaely le 22/09/2008 15:31:11 10/10

Fonctionne parfaitement, même en local.
Par contre, avec mon serveur Internet, le retour à la ligne sur un fichier .txt n'est pas affiché, il est remplacé par un petit caractère rectangulaire (qui correspond pourtant au retour à la ligne).
Or quand j'utilise le script en local, le retour à la ligne est affiché dans le fichier envoyé( ainsi que dans le fichier d'origine).
Quelqu'un sait-il pourquoi ? (j'utilise le bloc note pour lire les fichiers .txt).
Merci d'avance

signaler à un administrateur
Commentaire de monsieurzouzou le 22/09/2008 16:24:50

kalely: tu parles d'un fichier texte que tu génères puis envoie en pièce jointe?
tu utilises le caractère "\n" pour sauter une ligne?

signaler à un administrateur
Commentaire de kaely le 22/09/2008 16:30:44

monsieurzouzou : exactement. Je génère un fichier texte avec "\n" pour les fins de ligne.

signaler à un administrateur
Commentaire de kaely le 22/09/2008 16:37:20

J'ai essayé avec un fichier créé directement avec le bloc note et publié sur le serveur Internet.
Quand je l'enregistre avec un codage "ANSI" j'ai le même pb. Quand le codage est "Unicode", c'est cool.
D'où ma question : peut-on créer un fichier txt avec un script en lui précisant que le codage doit être "Unicode" ?

signaler à un administrateur
Commentaire de monsieurzouzou le 22/09/2008 16:50:49

tu devrais aussi essayer d'enregistrer en utf-8 et voir si ça fonctionne; comme ça t'aurais plus qu'à modifier ton texte en le passant par la fonction utf-8_encode de php. Genre utf8_encode($chaine).
Je n'ai pas testé, tu me diras si ça a marché :)

signaler à un administrateur
Commentaire de kaely le 22/09/2008 17:03:34

ça marche pas malheureusement !
Je continue à chercher.
En tous cas, merci ton aide monsieurzouzou ;-)

signaler à un administrateur
Commentaire de nikysrc le 22/09/2008 17:13:34

essais avec \r\n

signaler à un administrateur
Commentaire de monsieurzouzou le 22/09/2008 17:23:04

ben sinon essaie unicode_decode($chaine,"ANSI") mais sur php.net ils disent que c'est expérimental

signaler à un administrateur
Commentaire de kaely le 22/09/2008 19:26:50

ça marche avec \r\n.
Comme quoi, un petit rien...
Un gros merci à tous les deux, à nikysrc pour avoir trouvé, à monsieurzouzou pour ses recherches.

signaler à un administrateur
Commentaire de monsieurzouzou le 22/09/2008 19:41:47

pfffffff j'y avais meme pas pensé lol! c'est vrai qu'avant, sur les machines à écrire, il fallait d'abord déclarer une fin de ligne avant un retour chariot...bref c'est comme ça qu'on devrait sauter des lignes en fait, c'est le bon code.
Merci à nikysrc, grace à toi je me suis penché dessus

signaler à un administrateur
Commentaire de nikysrc le 22/09/2008 20:02:18

De rien :-)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.