begin process at 2012 05 27 22:18:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > CLASSE PHP PERMETTANT D'ENVOYER UN MAIL À PARTIR D'UN TEXTE HTML AU FORMAT MIME.

CLASSE PHP PERMETTANT D'ENVOYER UN MAIL À PARTIR D'UN TEXTE HTML AU FORMAT MIME.


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :E-Mail / Messagerie Classé sous :mail, html, mime, smtp, class Niveau :Initié Date de création :31/12/2005 Date de mise à jour :25/07/2006 15:42:08 Vu / téléchargé :11 382 / 975

Auteur : toutou78

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

 Description

* Classe permet de créer un message (mail)
* à partir d'un fichier HTML et respectant les standards MIME.
* Cette classe est largement inspirée des exemples fournit par Richard Heyes, après
* correction de quelques erreurs et simplifications.
* Le logiciel peut remplacer chacune des urls des images cités dans le source HTML
* par un segment image associé au message. Ceci permet d'associer dans le corps du
* message les images utilisées par celui-ci. En effet, si ces images ne sont pas
* disponibles sur un serveur HTTP, ou si les connexions Internet ne sont pas ouvertes
* alors les images ne pourront pas être affichées.
* On peut également ajouter des pièces jointes.
* Exemple (1) de mise en oeuvre :
* -----------------------------------
*
*  $myMail = new html_mime_mail(); //Instanciation de la classe
*  $myMail->add_header('Reply-To: "Daniel Touzeau" <dtouzeau@wanadoo.fr>'); //Ajout d'un header spécial
* //Définition des images à remplacer
*  $myMail->add_html_image('../images/ASM_top.gif', 'images/ASM_top.gif', 'ASM_top', 'image/gif');
*  $myMail->add_html_image('../images/Book.jpg', 'images/Book.jpg', 'Book', 'image/jpeg');
*  //Ajout du code HTML à rechercher dans un fichier (du serveur HTTP)
*  $myMail->add_file_html('../test_envoi_mail.html');
*  $myMail->add_attachment('../statistiques.xls', 'Fichier_Statistiques.xls');//Ajout d'une pièce jointe
*  $myMail->build_message(); //Demander à construire le message au format MIME
*  $myMail->send("daniel",  "dtouzeau@asmtennis.net",
*     "daniel du tennis", "dtouzeau@wanadoo.fr",
*     "test avec test_envoi_mail et pieces jointes");
* Exemple (2) avec utilisation du mode auto
* -----------------------------------
*
*
*  $myMail = new html_mime_mail(); //Instanciation de la classe
*  $myMail->add_header('Reply-To: "Daniel Touzeau" <dtouzeau@wanadoo.fr>'); //Ajout d'un header spécial
*  $myMail->add_file_html('../test_envoi_mail.html'); //---------A placer AVANT add_auto_images ---
*  $myMail->add_auto_images('http://www.monsite.fr/ap plication_1'); //URL Absolue du repertoire en cours
*  $myMail->add_attachment('../statistiques.xls', 'Fichier_Statistiques.xls');//Ajout d'une pièce jointe
*  $myMail->build_message(); //Demander à construire le message au format MIME
*  $myMail->send("daniel",  "dtouzeau@asmtennis.net",
*     "daniel du tennis", "dtouzeau@wanadoo.fr",
*     "test avec test_envoi_mail et pieces jointes");
* -----------------------------------
*
* Exemple (3) de l'envoi de plusieurs mails avec des paramètres variables inclus dans le corps du HTML sous
* la forme $paramXX
* -----------------------------------
*
*  $body = file_get_contents("message_init.html"); //Corps du message contenant des $paramXX
*  $myMail= new html_mime_mail('');
* Boucle d'accès à une base de données avec récupération des valeurs des paramètres
* begin{
*   .....
*   ....
*   $body = replace_value("\$paramXX, $texte_param); //Remplacement de(s) valeur(s)
*   $myMail->add_html($body, '');
*   $myMail->add_auto_images('http://www.monsite.fr/a pplication_1');
*   $myMail->build_message(); //Demander à construire le message au format MIME
*   $myMail->send("daniel",  "dtouzeau@asmtennis.net",
*      "daniel du tennis", "dtouzeau@wanadoo.fr",
*      "test avec test_envoi_mails et pieces jointes");
* fin de boucle
* }
*  Copyright Daniel Touzeau. Librement utilisable.
*/

Source

  • Source fournit avec documentation PHP dans fichier ZIP
  • Attention utilisatin de PHP5 !!!!
Source fournit avec documentation PHP dans fichier ZIP

Attention utilisatin de PHP5 !!!!

 Conclusion

Testé avec Outlook, incredimail, thunderbird

 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


 Historique

04 janvier 2006 01:29:27 :
Cette nouvelle version permet de traiter automatiquement les images contenues dans le corps de texte HTML et d'aller chercher dynamiquement les images se trouvant sur des serveurs HTTP distants, pour les incorporer au format MIME Base64.
04 janvier 2006 23:33:38 :
Suppression des traces de debug
25 juillet 2006 15:42:08 :
Précise l'utilisation de PHP 5

 Sources de la même categorie

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip CHAT EN PHP ET JQUERY par pitchoubrazil
Source avec Zip Source avec une capture FORMULAIRE DE CHOIX MULTI-CONTACT VALIDE XHTML 1.0 TRANSITIO... par aventurier19
Source avec Zip Source avec une capture WEB MESSENGER par EvildarkEurope

 Sources en rapport avec celle ci

Source avec Zip ENVOIE MAIL EN HTML AVEC PHP PAS DE SPAM SUR HOTMAIL ET GMAI... par Dje33
Source avec Zip CLASS MAIL GESTION COMPLÈTE par cerede2000
MAIL EN HTML par miata
Source avec Zip CLASS D' ENVOIE DE MAIL EN SMTP par ImmortalPC
CLASS MAILEUR par coucou747

Commentaires et avis

Commentaire de FhX le 01/01/2006 20:16:58

$myMail->add_html_image('../images/ASM_top.gif', 'images/ASM_top.gif', 'ASM_top', 'image/gif');

Ta classe aurait du permettre le fait de reconnaitre le format d'une image en fonction de son extension. Ca évite de le préciser en argument.

Après c'est pareil, tes 2 arguments dans add_html_image ne servent à rien, ce sont les mêmes à peu de choses près. Un peu de traitement en PHP (genre un substr()) aurait permis d'éviter ca.

Maintenant, j'attaque la classe en elle même :
"Sans argument => créer un $headers vide
* Si argument = string => découpage du string
"public function html_mime_mail($headers = ''){"
Pas la peine de faire ca... autant faire quelque chose dans le genre :
public function __construct( $headers = NULL ) {
if ( !isset($headers) ) return; // Et encore, je trouve ca pas super bien codé, mais bon.

"        if(is_string($headers)) {
           $headers = explode("\r\n", trim($headers));
       }
       foreach($headers as $val) {
         if(is_array($val)) {
            foreach($val as $subval) {
               if(!empty($subval) && is_string($subval)){
                  $this->headers[] = $subval;
               }
            }
         }else {
                  $this->headers = $headers;
             }
      }
" Ca aussi, mal codé ce truc :
if ( is_array($headers) ) {
     foreach ($headers as $key=>$val) {
        if ( is_string($val) !empty($val) ) $this->headers[] = $val;
     }
} else {
     $this->headers = explode("\r\n", trim($headers));
}

La suite :
" public function set_body($text = ''){
    if(is_string($text)){
" Condition ne servant à rien ici, tu déclare $text comme étant une chaine vide :o
public function set_body( string $text ) {
     $this->body = $text;
}

Je ne parle pas de add_header() qui est une méthode un peu trop fouilli à mon gout !

"    if(strtolower(substr($file, -4, 4))=='.gif' && $c_type=='application/octet-stream')
   $c_type='image/gif';
   if(strtolower(substr($file, -4, 4))=='.jpg' && $c_type=='application/octet-stream')
   $c_type='image/jpeg';
" La c'est pareil, un peu de rangement ne fait pas de mal :p
if ( $c_type === 'application/octet-stream ) {
      $file = strtolower(substr($file, -4,4));
       if ( $file === '.gif' ) {
            $c_type = 'image/gif';
       } elseif ( $file === '.jpg' ) {
            $c_type = 'image/jpg';
       }
}

J'ai pas eu le temps de voir plus loin les méthodes privées, mais voici ce que je pense de celle qui sont public !

Commentaire de franc666 le 23/01/2006 22:26:20

Moi je dis :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/soluceq/www/news/newsletter/class_html_mime_mail_V1.php on line 132

Commentaire de Dharius le 28/02/2008 15:24:49

Domamge pas compatible avec Gmail ou Hotmail par exemple qui ne sont pas des clienst MIME....

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Mail et Client Web ? [ par Varod ] Bonjour,Lors de l'envoie de mail au format HTML, je rencontre des problemes selon les clients web. Certes, il y a le probleme de la lecture des mails Envoi de MAIL gros probleme [ par boopette ] Bonjourjai un gros probleme je narrive pas a envoyer de mailsjai utilise la fonction MAIL() de PHP et des fonction de mail en SMTPjai des erreurs:fonc Mail HTML [ par MAsterC ] Salut à tous!!Pour envoyer un mail avec le PHP j'utilise: mail()....J'ai vu que /n = un EntréMais si je veux poster un Mail en HTML... les caractères Problème d'image lors d'envoi en HTML avec mail() [ par Drazounet ] Salut à tous,Je suis en train de concevoir un mailer qui doit pouvoir envoyer des e-mail au format HTML, les liens ou les tableaux fonctionnent, mais mail en smtp [ par gemelos ] voici mon code:fputs ($connection , "MAIL FROM: &lt;$email&gt;\n");$result =fgets ($connection ,256 );print("$result&lt;br&gt;");fputs ($connection , Envoyer un mail au format HTML [ par predateur ] Bonjour,Je cherche un script tout pret pour envoyer des mail au format HTML. Avec la partie html et la partie php.Merci d'avance mail pr des Pros !!! [ par ckoo ] bonjour,j'ai un script qui envoie des mails au format HTML,cependant j'ai fait un "img src....." pr mettre des images dans le mail format HTML mais à besoin d'aide svp fonction mail() [ par yomm ] voila, je doit envoyer des mails, pour cela j'utilise la fonction mail.j'utilise le serveur smtp de ifrance , ayant moi meme une adresse chez eux, le FCT mail, piecesjointes, mode html et texte brut [ par olid ] bonjour,Je voudrais envoyer des mails au format HTML (zà, je zais faire), mais je voudrais que les images de la page html soient inclus en pieces join prbl : un include dan un envoi de mail [ par malob87 ] bjr a tous, voici mon code complet:&lt;?if(empty($_POST[msg]))//on vérifie avec empty voir si les champs sont vide {print "le champ msg est vide"; //s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,499 sec (4)

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