Reprise du dernier message
bon la version sans templates fonctionne parfaitement....
par contre la versiona vec templates grrrr....
donc voici une version sans templates au cas ou il y aurais besoin....
le fichier se nome class_fsb_mail.php, se met dans includes/class, pour l(utiliser, faites :
pour envoyer un message rapidement (oui je sais ca existe déja mais bon en attendant que se soit plus déveloper.....)
le reste je pense que le fichier est assez explicite....
sinon si problème il y as je vous écoute.....
mais promit jkebosse sur le probleme des templates....
par contre la versiona vec templates grrrr....
donc voici une version sans templates au cas ou il y aurais besoin....
le fichier se nome class_fsb_mail.php, se met dans includes/class, pour l(utiliser, faites :
Code (Sélectionner le code)
include( $racine . 'includes/class/class_fsb_mail.php' ); $mail = new fsb_mail();
pour envoyer un message rapidement (oui je sais ca existe déja mais bon en attendant que se soit plus déveloper.....)
Code (Sélectionner le code)
$mail->envoi_mail_simple('destinataire@domaine.com','vous@domaine.com','votre emssage','votre sujet....')le reste je pense que le fichier est assez explicite....
sinon si problème il y as je vous écoute.....
mais promit jkebosse sur le probleme des templates....
Code (Sélectionner le code)
<?php /******************************************************************************* * * [ ./includes/class/class_fsb_mail.php (français) ] * * -------------------------------------------------------------------------- * Commencé le : 20 octobre 2004 * Copyright : Grummfy * Site Web : http://www.grummfy.com * E-mail : grummfy@yahoo.fr * -------------------------------------------------------------------------- * Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les * termes de la Licence Publique Générale GNU publiée par la Free Software Foundation * (version 2). Reportez-vous à la Licence Publique Générale GNU pour plus de détails. * Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps * que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, àtats-Unis. * -------------------------------------------------------------------------- * Derniére modification le 24 octobre 2004 par Grummfy pour FSB RC1 * Templates : 0 * *******************************************************************************/ class fsb_mail { /****************************************************************************** * déclaration de variables de la classe *******************************************************************************/ // le destinataire var $destinataire = array(); // l'expéditeur du message var $expediteur = array(); // la date du jour de l'envoi lol, pas une constante, on ne sais jamais var $date_du_jour; // la partie header du message ce qui est en général cacher mais bon faut bien le definir var $headers = array(); // sujet du message var $sujet; // le message à propremetn parler var $message; // la signature du message var $signature; // le type de mail, html(true) ou texte(false) var $type_mail; // date du jour formatée var $date_du_jour_formate; /****************************************************************************** * constructeur de la classe *******************************************************************************/ // par défaut on n'utilise pas le syteme de templates function fsb_mail() { $this->reset_tout(); } /****************************************************************************** *******************************************************************************/ // // on choisi si le mail est en html ou en txt // html(true)ou(1) ou texte(false)ou(0) // function type_mail($htmloutxt) { global $langue; if ($htmloutxt == TRUE) { $this->type_mail = $htmloutxt; $this->type_mime_mail('text/html; charset="' . $langue['charset'] . '"'); } elseif ($htmloutxt == FALSE) { $this->type_mail = $htmloutxt; $this->type_mime_mail('text/plain; charset="' . $langue['charset'] . '"'); } else { echo('erreur ligne 117'); } } /****************************************************************************** * méthode de la classe * mail : - rapide, sans tpl et juste du texte,.... *******************************************************************************/ // // pour envoyer rapidement un mail en mode texte c'est ici // function envoi_mail_simple($to,$from,$message,$sujet) { $this->message($message); $this->sujet_mail($sujet); $this->exp_mail($from); $this->dest_mail($to); $this->type_mail(false); $var = $this->envoi(); return $var; } /****************************************************************************** * méthode de la classe * mail : - général *******************************************************************************/ // // formate la date // function formate_date($format = '') { global $membre, $config; if ($format=='') { if ( isset($membre['membre_date_format']) ) { $this->date_du_jour_formate = date($membre['membre_date_format'], $this->date_du_jour); } else { $this->date_du_jour_formate = date($config['date_format'], $this->date_du_jour); } } else { $this->date_du_jour_formate = date($format, $this->date_du_jour); } } /****************************************************************************** * méthode de la classe * mail : - expéditeur, récepteur et autres *******************************************************************************/ // // on donne l'adresse du destinatarie et si on le désire son nom // function dest_mail($mail_destinataire, $nom_destinataire ='') { // si le nom du destinataire est défini on lui met son nom sinon on envoi juste l'adresse. if( $nom_destinataire == '' ) { $this->destinataire['to'] = trim($mail_destinataire); } else { $mail_to = ' <' . trim($mail_destinataire) . '>'; $nom_to = '"' . trim($nom_destinataire) . '"'; $mail_dest = $nom_to . $mail_to; $this->destinataire['to'] = trim($mail_dest); } } // // destinataire du mail en copie séparer par des virgules // function dest_mail_copie($mail_destinataire, $nom_destinataire ='') { // si le nom du destinataire est défini on lui met son nom sinon on envoi juste l'adresse. if( $nom_destinataire == '' ) { $this->destinataire['cc'][] = trim($mail_destinataire); } else { $mail_cc = ' <' . trim($mail_destinataire) . '>'; $nom_cc = '"' . trim($nom_destinataire) . '"'; $mail_dest = $nom_cc . $mail_cc; $this->destinataire['cc'][] = trim($mail_dest); } } // // destinataire du mail en copie CACHà séparer par des virgules // function dest_mail_copie_cache($mail_destinataire, $nom_destinataire ='') { // si le nom du destinataire est défini on lui met son nom sinon on envoi juste l'adresse. if( $nom_destinataire == '' ) { $this->destinataire['bcc'][] = trim($mail_destinataire); } else { $mail_bcc = ' <' . trim($mail_destinataire) . '>'; $nom_bcc = '"' . trim($nom_destinataire) . '"'; $mail_dest = $nom_bcc . $mail_bcc; $this->destinataire['bcc'][] = trim($mail_dest); } } // // expéditeur du messsage // function exp_mail($mail_expediteur, $nom_expediteur ='') { if ($nom_expediteur == '') { $this->expediteur['from'] = trim($mail_expediteur); } else { $mail_from = ' <' . trim($mail_expediteur) . '>'; $nom_from = '"' . trim($nom_expediteur) . '"'; $mail_exp = $nom_from . $mail_from; $this->expediteur['from'] = trim($mail_exp); } } // // repondre à // function exp_mail_repondre($mail_expediteur_repondre_a, $nom_expediteur_repondre_a = '') { if ($nom_expediteur_repondre_a == '') { $this->expediteur['reply-to'] = trim($mail_expediteur_repondre_a); } else { $mail_reply_to = ' <' . trim($mail_expediteur_repondre_a) . '>'; $nom_reply_to = '"' . trim($nom_expediteur_repondre_a) . '"'; $mail_exp_rep = $nom_reply_to . $mail_reply_to; $this->expediteur['reply-to'] = trim($mail_exp_rep); } } /****************************************************************************** * méthode de la classe * mail : - spécification du headers *******************************************************************************/ // // permet l'ajout d'options spécial au headers // // ATTENTION bien comprendre les headers pour pouvoir l'utiliser // quelques explication suplémentaires là : http://phpcodeur.net/articles/php/emails // function headers_mail($type, $headers) { $this->headers[$type] = trim($headers); } // // definit la priorité du message de 1 à 5 // function priorite_mail($prior) { $this->headers_mail('X-Priority', $prior); } // // definit l'adresse de retour en cas d'erreur // function erreur_mail($erreur_mail) { $this->headers_mail('Return-Path', $erreur_mail); } // // donne le type mime du mail // function type_mime_mail($type) { $this->headers_mail('Content-Type', $type); } // // utiliser la notification de mail et donner l'adresse de reception de cette notification // function notification_mail($maildenotification) { $this->headers_mail('Disposition-Notification-To', $maildenotification); } // // définit l'encodage utilisé par le contenu de l'email ou une partie de celui-ci // function encodage_mail($encodage_mail) { $this->headers_mail('Content-Transfer-Encoding', $encodage_mail); } /****************************************************************************** * méthode de la classe * mail : - messsage, sujet, signature *******************************************************************************/ // // met le sujet du mail // function sujet_mail($sujet) { $this->sujet = trim($sujet); } // // met le message // function message($message) { if ($message != '') { $this->message = $message; } else { echo('erreur ligne 422'); } } // // on dfinit la signature si il y as lieu // function signature($sign) { $this->signature = $sign; } /****************************************************************************** * méthode de la classe * mail : - envoi du mail.... *******************************************************************************/ // // on envoi l'email avec tout ce qui à été précédement prédéfinit // renvoi true ou false, true -> le mail à été envoyer, false le mail n'as pas été envoyer. // function envoi() { global $racine, $config, $langue; $entete = ''; $entete = 'From: ' . $this->expediteur['from'] . "\n"; $entete .= (isset($this->expediteur['reply-to']) && $this->expediteur['reply-to'] != '') ? 'Reply-to: ' . $this->expediteur['reply-to'] . "\n" : '' ; if ($this->destinataire['cc'] > 0) { // on sépare les destinataires par des virgules $copie_mail = implode(", ", $this->destinataire['cc']); $entete .= ($copie_mail != '') ? 'Cc: ' . $copie_mail . "\n" : '' ; } if ($this->destinataire['bcc'] > 0) { // on sépare les destinataires par des virgules $copie_cache_mail = implode(", ", $this->destinataire['bcc']); $entete .= ($copie_cache_mail != '') ? 'Bcc: ' . $copie_cache_mail . "\n" : '' ; } $this->headers['Date'] = $this->date_du_jour_formate; $this->headers['X-Mailer'] = 'FSB ' . $langue['FSB_VERSION']; $this->headers['X-AntiAbuse'] = 'Sender IP - ' . $_SERVER['REMOTE_ADDR'] . '/Server Name - <' . $_SERVER['SERVER_NAME'] . '>'; $this->headers['MIME-Version'] = '1.0'; // si il n'y as pas de type défii c'est du texte par défaut if ( !isset($this->headers['Content-Type']) ) { $this->type_mime_mail('text/plain; charset="' . $langue['charset'] . '"'); } // on met générer le messag_id qui caractérise un message unique.... $this->headers['Message-ID:'] = '<' . md5(uniqid(rand())) . '@' . $config['nom_serveur'] . '>'; if ($this->headers > 0) { foreach($this->headers as $key => $value) { $entete .= $key . ': ' . $value . "\n"; } } // pour eviter des bug on enleve tout les retours à la ligne $dest = str_replace("/\r\n?/", "", $this->destinataire['to']); $sujet = str_replace("/\r\n?/", "", $this->sujet); // evite quelque bug et double retour à la ligne.... if(!$this->type_mail) { $msg = str_replace("/\r\n?/", "\n", $this->message); if ( isset($this->signature) ) { $msg = $msg . "\n\n~~~~~~~~~~~~~~~~~~~~\n" . $this->signature; } } else { $msg = str_replace("/\r\n?/", "<br />", $this->message); $msg = str_replace("/\n?/", "<br />", $this->message); if ( isset($this->signature) ) { $msg = $msg . '<br /><br /><hr />' . $this->signature; } } $result = @mail($dest, $sujet, $msg, $entete); return $result; } /****************************************************************************** * méthode de la classe * mail : - tout ce qu'il faut pour remttre tout ou une partie à 0... *******************************************************************************/ // // remet le tout à 0 // function reset_tout() { global $config; $this->destinataire = array('to' => '', 'cc' => array(), 'bcc' => array()); $this->expediteur = array('from' => '', 'reply-to' => ''); $this->date_du_jour = time(); $this->formate_date($config['date_format']); $this->headers = array(); $this->sujet = ''; $this->message = ''; $this->signature = ''; // par defaut type texte $this->type_mail(FALSE); } // // on réinitalise le message // function reset_message() { $this->message = ''; } // // on remet à 0 les destinataires // function reset_destinataire() { $this->destinataire = array('to' => '', 'cc' => array(), 'bcc' => array()); } // // on réinitialise l'expéditeur // function reset_expediteur() { $this->expediteur =array('from' => '', 'reply-to' => ''); } // // on remet le sujet à 0 // function reset_sujet() { $this->sujet = ''; } // // on remet la signature à 0 // function reset_signature() { $this->signature = ''; } } ?>
"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb1 - Mods fsb2 - Mon forum - Grummfy's project
Mods fsb1 - Mods fsb2 - Mon forum - Grummfy's project








