begin process at 2010 03 22 16:54:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > ENVOYER DES MAILS AVEC PIÈCES JOINTES

ENVOYER DES MAILS AVEC PIÈCES JOINTES


 Information sur la source

Note :
8,4 / 10 - par 5 personnes
8,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :E-Mail / Messagerie Niveau :Débutant Date de création :13/06/2003 Date de mise à jour :14/06/2003 10:49:07 Vu / téléchargé :21 327 / 2 964

Auteur : Totofweb

Ecrire un message privé
Commentaire sur cette source (41)
Ajouter un commentaire et/ou une note

 Description

Voici une classe PHP qui permet d'envoyer des mails textes ou htmls contenants des pièces jointes. Vous pouvez même inclure des pièces jointes comme ds images qui seront utilisées dans le mail html !

Source

  • <?php
  • include('simplemail.php');
  • $mail = new simplemail;
  • $mail -> addrecipient('tetsuo@xxx.com','tetsuo');
  • $mail -> addrecipient('plouf@xxx.com','plouf');
  • $mail -> addbcc('xxx@xxx.com','plouf');
  • $mail -> addfrom('gwbush@neobagdad.com','gwbush');
  • $mail -> addsubject('yyy yyy');
  • // le message text
  • $mail -> text = 'plain text etc. etc. bla bla ...';
  • // le message format html
  • $mail -> html ="bla<hr><img src=\"cid:doc1\" align=\"right\">blbala\n1\t2\t3\na\tb\tc";
  • // un attachement html ( image jointe afficher ds le html ).
  • $mail -> addhtmlattachement ( 'KT400.gif','doc1', 'image/gif' );
  • // une piece jointe.
  • $mail -> addattachement ( 'KT400.gif' );
  • $mail -> addattachement ( 'dossier_important.zip' );
  • if ( $mail -> sendmail() ) { echo "envoyé"; } else { echo "erreur"; echo $mail->error_log; }
  • ?>
<?php

include('simplemail.php');

$mail = new simplemail;
$mail -> addrecipient('tetsuo@xxx.com','tetsuo');
$mail -> addrecipient('plouf@xxx.com','plouf');
$mail -> addbcc('xxx@xxx.com','plouf');
$mail -> addfrom('gwbush@neobagdad.com','gwbush');
$mail -> addsubject('yyy yyy');

// le message text
$mail -> text = 'plain text etc. etc. bla bla ...';

// le message format html
$mail -> html ="bla<hr><img src=\"cid:doc1\" align=\"right\">blbala\n1\t2\t3\na\tb\tc";

// un attachement html ( image jointe afficher ds le html ).
$mail -> addhtmlattachement ( 'KT400.gif','doc1', 'image/gif' );

// une piece jointe.
$mail -> addattachement ( 'KT400.gif' );
$mail -> addattachement ( 'dossier_important.zip' );

if ( $mail -> sendmail() ) { echo "envoyé"; } else { echo "erreur"; echo $mail->error_log; }

?> 

 Conclusion

Tout ce que vous avez à faire est de télécharger la classe simplemail à http://classes.scriptsphp.org et c'est parti !

Que la force du PHP soit avec toi ;-)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

UTILISER UN MODÈLE DE PAGE EN PHP
UN SITE MULTILINGUE ?
TOUT VOTRE SITE EN UNE SEULE PAGE : INDEX.PHP?MODULE=TRUCBID...
Source avec Zip GÉNÉRATEUR DE MOTS DE PASSES ALÉATORES

 Sources de la même categorie

Source avec Zip AJOUT D'UN RENDEZ-VOUS DANS UN CALENDRIER EXCHANGE 2003 par SachaWolf
TRANSFORMER DU TEXTE OU DE L'HTML EN TEXTE CONFORME À LA NOR... par fyav
Source avec Zip FORMULAIRE EMAIL AVEC PIECE JOINTE REPRIS DE LITTLEBUBU par cfndiaye
Source avec Zip Source avec une capture MESSAGERIE INTERNE AVEC FICHIER TEXTE par polly19
Source avec Zip FORMULAIRE EVOIE ET PLUS par florentinul

Commentaires et avis

Commentaire de djfred68 le 22/06/2003 22:15:34

mon script a marché, c'est le provideur qui a mis du temps à me remettre le mail....merci quand même.

Commentaire de boopette le 15/02/2004 18:01:38

SNIF je comprends pkoi jai cette erreur ca devrait marcher pourtant

Undefined variable: headers in simplemail.php on line 103
erreur

Commentaire de boopette le 16/02/2004 12:37:12

Ca m'affiche
"erreur" et je vois pas pourquoi, HELP !

Commentaire de Totofweb le 18/02/2004 21:21:23

Salut
Essaye de tester des envois de mails en commentant tous les paramètres et en les décommentant un à un pour identifier le fautif

Totofweb

Commentaire de jayz01 le 19/02/2004 21:50:25

Merci pour ce script très utile, le seul problème rencontré est lors d'un envoi de mail au format html, si le mail est reçu sur un MAC (OS9 ou OSX) le format html n'est pas reconnu. Quelqu'un peut-il m'aider car je ne trouve pas de solution ?

Commentaire de Totofweb le 20/02/2004 09:51:01

je ne connais pas les macs, mais envoie ton mail au format texte si ça pose des problèmes, et je crois même qu'on peut spécifier le formet html et le formet texte, et que le logiciel de messagerie choisis, mais je suis pas sûr.

Commentaire de jayz01 le 20/02/2004 12:01:10

Merci pour ta réponse rapide. J'utilise ce script pour l'envoi d'une mailing-list à un grand nombre de client dont une partie est en MAC, je ne peux pas l'envoyer au format text, puisque il y a des balises de couleur, de police, de lien web entres autres. Aucune n'est prise en compte en MAC, je vais essayer ta solution mais dans ce cas, les MAC n'auront qu'une version très réduite du mail (sans format et lien), ce qui est dommage. Sinon, peux-tu me diriger vers un site ou un forum qui pourrait m'aider, je n'en trouve pas, merci.
Jay.

Commentaire de ganelous le 31/03/2004 09:56:23

Salut,
j'ai un problème avec ce script :
je veux envoyer un pdf, lorsque je reçoit le mail la pièce jointe est soit concidérée comme vide (avec wanadoo), soit le pdf s'ouvre mais est corrompu (avec free) et donc ne s'ouvre pas...
à part ça le contenu du mail est bon;

Sais tu pourquoi cela ne marche pas? (je teste le script en local avec un serveur smtp local)

sinon, est-il possible de mettre plusieurs pièces jointe avec ce script (j'ai pas pu tester puisqu'il ne marche pas).

Merci d'avance.

Commentaire de Totofweb le 31/03/2004 11:38:07

normalement on pet mettre plusieurs pièces jointes.

pour ton pdf, déjà peux-tu l'ouvrir quand il est sur ton DD ? Quelle taille fait il (s'il est très gros, ça pourrait expliquer le problème) ? As-tu essayé avec d'autres fichiers ?

Commentaire de ganelous le 31/03/2004 11:54:00

le pdf est visible sur le dd
j'ai essayé avec une image et elle est également corrompue
le pdf faisait 50ko et l'image 15ko (l'image reçu fait le meme poid mais n'ast pas visible)

ça vient pas des systèmes de codage des pieces jointes?

Commentaire de Totofweb le 31/03/2004 12:56:47

tu as essayé sur un vrai serveur ? ça vient sans doute de ta configuration (php, apache, smtp, ...)

Commentaire de ganelous le 08/04/2004 14:50:02

bon, j'ai essayé sur un vrai serveur et l'attachement des pdf fonctionne avec un seul pdf pas avec plusieurs
j'ai essayé a mettant comme piece jointe "nom1.pdf , nom2.pdf" mais ça marche pas, il considere que "nom1.pdf , nom2.pdfé est le nom d'un seul fichier...
comment dois-je faire pour qu'il considère ça comme 2 fichier distinct??

merci d'avance

Commentaire de Totofweb le 08/04/2004 17:38:06

D'après ce que tu dis, tu as fait $mail -&gt; addattachement ("nom1.pdf, nom2.pdf");

Il faut faire
$mail -&gt; addattachement ("nom1.pdf");
$mail -&gt; addattachement ("nom2.pdf");

Totofweb

Commentaire de ganelous le 09/04/2004 10:35:34

merci ça marche comme tu m'as did :-)

mais j'ai un autre bug :-(

le mail s'affiche correctement sur certains webmail (free numericable) avec les pieces jointes lisibles et tout et tout, mais sur outlook et wanadoo le texte s'affiche bien mais il n'y a pas de pièce jointe... (et  le texte s'affiche bien sur certains outlook ou alors le code s'affiche et il me semble que les pieces jointes sont dans le corps du texte en brut, du style /TYDNE6ED437HEDGDHEDK863JHE etc. sur d'autres outlook...)
comment ça se fait?  

ils aiment pas mon boulot ou quoi les outlook??
les pdf sont des vrai fait avec pdf writer donc ça vient pas des pdf...

outlook n'aime pas les Content-Type: multipart/mixed ou quoi?

(tu dois me trouver pénible non?)

merci

Commentaire de Totofweb le 09/04/2004 14:17:02

Salut
  Ca vient peut-être des paramètres de Outlook. Certains sont paramétrés pour ne lire qu'en mode text, et pas html. Dans ce cas, la source est affichée, avec la pièce jointe sous forme de LJHGCEEOIGNIEHGOEITUHTOIZ7UTH4IHTO

Totofweb

Commentaire de Joule le 18/05/2004 11:40:52

lu
je n'utilise pas ta librairie ki m'a l'air somme toute fort simple a utilisé mais je construit mon header de la meme facon ke toi .... bref mon pb est lié au pièce jointes (le meme pb avec les pdf cité plus hauts) ...
je me demande si ce pb de "coruption" de fichier vient de l'en-tête (le content-type par exemple) ou de la config de mon serveur...
si quelqu'un peut m'aider j'en serais ravi :)

Commentaire de Totofweb le 18/05/2004 14:39:19

Poste ta question sur le forum, tu y trouvera plus d'aide... Pour ma part, je ne vois pas trop d'où peut venir le problème...

Commentaire de Back Down le 26/05/2004 16:22:04

Salut,

j'utilise la classe simpleMail est elle marche nickel pour ce qui est du message. Cependant j'ai un problème quand je joint une image.

// le message format html
$mail -&gt; html = "&lt;hr&gt;&lt;img src=\"cid:doc1\" align=\"right\"&gt;";
// un attachement html ( image jointe afficher ds le html ).
$mail -&gt; addhtmlattachement ( 'Photo1.jpg','doc1', 'image/jpeg' );

en fait, une fois le mail envoyé, je le reçoit mais mon image et &lt; .01Mo et je n'arrive pas à l'envoyée totalemant. à l'origine l'image que je veut envoyer fait 4,83Ko. et je une image qui ressembke à rien et qui fait 138 Ko

C'est un échec.

Please Help

Commentaire de Totofweb le 26/05/2004 16:35:28

es-tu sûr que le script arrive bien à accéder à l'image (problèmes de chmod peut être ?)

Commentaire de Back Down le 26/05/2004 16:49:29

oui, l'image que je reçoit est bien l'image que j'envoit, car pour être plus précis, je recoit une image de la même taille que celle de départ, cependant une seule minuscule partie (de l'ordre de 5pixels*5pixels) est correcte. Le reste de l'iage est toutes noire.

Commentaire de Back Down le 26/05/2004 16:51:08

excuse moi, j'entand par taille dimension.
Je sais pas la même chose.
désolé.

Commentaire de Totofweb le 26/05/2004 21:06:30

Va exposer ton problème sur http://classes.scriptsphp.org, car c'est là que cette classe a été créée.

Commentaire de victorcoasne le 27/05/2004 12:52:35

Et ça marche si le fichier à joindre n'est pas sur le serveur mais sur le disque dur ?

Si non le script ne peux-i-il pas l'uploader

Commentaire de Back Down le 27/05/2004 14:19:33

En fait, j'ai filé mon code à un amie. Et chez lui ca marche bien. Le problème c'est que en local, quand je quand je joint le fichier, le script le lit bien. Mais quand il l'attache en piéce jointe, sans savoir pourquoi, il modifie les donnée du fichier joint. Et sale fait uniquemantsur mon poste de travail. Maintenant que je sais quemon script marche chez les autres, je vais essayer de le fair tourné à partir du serveur.

Merci pour vos réponse, c'es sympatique de votre part.

Commentaire de Back Down le 27/05/2004 14:51:34

Donc résultat des essais, ca marche sur le serveur. ;)

Commentaire de Totofweb le 27/05/2004 20:20:33

victorcoasne=&gt;C'est à toi de gérer l'upload, ce n'est pas du tout le rôle de ce script (d'autres s'en chargent ...)

Commentaire de okaneganai le 01/04/2005 09:46:09

ça me marque une erreur:

Fatal error: Cannot instantiate non-existent class: simple in /home/sites/site43/web/administration/newsletter.php on line 197

mon code -->

include("simplemail.php");

$mail = new simplemail;
$mail -> addrecipient('moi@moi.fr,'Guillaume');
$mail -> addrecipient('moi@moi.fr','Guillaume2');
$mail -> addbcc('moi@moi.fr','Guillaume3');
$mail -> addfrom('contact@gps.asso.fr','GPS');
$mail -> addsubject($sujet);

// le message format html
$mail -> html =$contenu;

// une piece jointe.
//$mail -> addattachement ( 'KT400.gif' );
$nom_fichier=$_FILES['fichier']['name'];                     
$type=$_FILES['fichier']['type'];  

$mail -> addattachement ( $nom_fichier );

if ( $mail -> sendmail() ) { echo "envoyé"; } else { echo "erreur"; echo $mail->error_log; }

Commentaire de Totofweb le 01/04/2005 14:23:16

Lis ce que PHP te donne comme message d'erreur : "Impossible d'initialiser une classe inéxistante nommée simple à la ligne 197".

Donc en fait quelque part tu as essayé d'appeler une classe nommée simple au lieu de simplemail. Apparemment ce n'est pas le cas dans ton bout de code, mais peut-être que tu n'as pas regardé au bon endroit. Le bout de code que tu as copié-collé contient-il la ligne 197 ??

Totofweb

Commentaire de okaneganai le 01/04/2005 14:37:59

en fait l'erreur était bien:


Fatal error: Cannot instantiate non-existent class: simplemail

plutot que de faire un include, je copie directement le code de la classe dans la page, et là ça marche nickel!
C'est pas très pro, mais du moment que ça fonctionne :)

ent tout cas merci pour ce code qui m'a sauvé la vie :)

Commentaire de mehdibc le 14/04/2006 01:39:18

j'ai essayé ce scripte sur php5 (easyphp 1.8) et ça donné cette erreur:

Notice: Undefined variable: headers in c:\program files\easyphp1-8\www\mail\simplemail.php on line 106
erreur

Commentaire de come18 le 19/06/2006 13:08:45

j'ai un probleme d'envoi,
je suis en local et j'ai une erreur non identifiée (il marque juste "erreur" lorsque j'ai pris ton exemple) et si j'enleve le @ devant la fonction d'envoi du mail (dans la classe) il me met,
Warning: Server Error in c:\program files\easyphp\www\simplemail\simplemail.php on line 245
erreur
est ce que ca marche en local? si oui quelle peut etre la cause de cette erreur?
merci

Commentaire de Totofweb le 19/06/2006 18:30:28

Là c'est ton serveur qui plante, pas le script. Est-ce que l'envoi de mails par la fonction mail() fonctionne ? As-tu configuré ton php.ini et httpd.conf pour l'envoi des mails en local ?

Commentaire de Zeo34 le 21/05/2007 14:11:57

Bonjour,
J'utilise cette class dans le cadre d'une expédition de devis en temps réel. Or mon problème est que j'arrive pas à faire apparaître l'expéditeur, à la place j'ai comme expéditeur "CGI-MAILER" et non une adresse email, que faire ?

Commentaire de lelapinou_69 le 12/06/2007 17:09:02

Salut à tous.
J'essaie d'utiliser cette classe depuis peu, et je suis complètement dégouté, car j'avais tapé un code similaire pour l'envoie de pièces jointes, mais mon code fonctionne pas. ALors je me suis penché sur cette classe.
Par contre mon soucis est que je veux envoyer des fichiers pdf, ce qu'elle fait très bien, mais je ne parviens pas à ouvrir les fichiers, car cela me dit qu'ils sont soit corrompus, soit envoyés en pièce jointe et mal décodé.
Quelqu'un aurait une idée.
A savoir que ce sont des fichiers que je génère avec la classe FPDF, et qu'à la génération, si je les lance sur le navigateur cela s'ouvre sans problème.

Commentaire de Zeo34 le 13/06/2007 17:43:52

Salut LeLapinou,
J'ai eu exactement le même problème :
- je ne stockais pas en dur le fichier PDF, la classe FPDF le permet $pdf->Output(monPdf.pdf"); (où $pdf est l'objet FPDF)
ce qui donne : $mail -> addattachement ( 'devis.pdf' ); pour l'expédition de l'email par la classe simplemail
- cela peut venir de l'encodage lors de l'envoie de l'email aussi

Commentaire de lelapinou_69 le 13/06/2007 17:48:25

Tout à fait d'accord avec toi, après y avoir passé quelques heures, je me suis rendu compte qu'en fait c'était ma partie du mail en HTML qui posait soucis.
Mon problème est bel et bien réglé.
Merci à Totofweb pour ce script, que je trouve le plus simple et fonctionnel, et mes doigts savent que j'en ai testé.

@plouch

Commentaire de gilles_geneve le 04/09/2007 19:13:12

La fonction mail fonctionne très bien
mais avec simplemail j'ai le meme prob que come18 juste un message d'erreur "Failed to send"

Merci de ton aide...

Commentaire de lelapinou_69 le 05/09/2007 08:55:14

Pour faire un petit concentré de certaines erreurs que j'ai constaté, il se trouve que la plus part sont répertoriées ici. Mon email part, mais la fonction me renvoi faux,dans le cadre où j'ai plusieurs destinataires.
J'ai pu remarqué également que suivant le gestionnaire de mail, les mails sont pas interprétés de la même façon, par exemple Outlook Express interprète correctement le mail (titre, from, reply,headers) par contre avec le webmail de 1and1 par exemple (fournisseur d'hébergement et noms de domaines) j'ai pu constater que les mails arrivaient sans titre, ni expéditeur, et que le webmail de orange ne recevait pas du tout les email (ça c'est peut être autre chose, mais pas l'anti spam...).
Toujours est il que pour ne pas avoir en permanence un message d'erreur alors que le mail part bien, j'ai utilisé une variable captant les erreurs possible, et si aucune ne rempli ma variable je passe (je sais c'est pas propre... tapez pas trop fort)

Commentaire de bydouille le 14/06/2008 12:49:23

Bonjour,

Oui, j'ai testé ce script
mais l'image n'arrive pas entière
et avec une partie brouillée !

A te lire

Commentaire de Alpha911 le 08/06/2009 02:39:53

ceci semble etre un super script mail voila le soucis que je rencontre

PHP Warning:  fread() [<a href='function.fread'>function.fread</a>]: Length parameter must be greater than 0 in simplemail.php on line 230

du coup rien ne part

Commentaire de maxinounours le 22/02/2010 18:55:24

c'est un super script, mais j'ai rencontré deux problemes
1 : sur gmail ou autre, il m'envoie le mail en double... je ne sais pas du tout pourquoi
2 : sur outlook, il m'affiche seulement les codes :
le mail commence comme ca :

This is a multi-part message in MIME format.

------=_001
Content-Type: multipart/related;
boundary="----=_002"


------=_002
Content-Type: multipart/alternative;
boundary="----=_003"


------=_003
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

HTML only!


------=_003
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

s'il vous plait de l'aide :)

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales