logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
24 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 475 276

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» integrer class phpmailer

integrer class phpmailer#23428

3Contributeur(s)
Hotfirenetvigsdeveloppeur
3 Modérateur(s)
developpeurjpbJireck
vigs vigsicon_post
bonjour,

mon hébergeur limitant l'utilisation de la fonction mail, j'ai voulu intégrer phpmailer sur mon site.

j'ai donc télécharger et installer la class, j'ai modifié le mainfile.php comme suit :



#autodoc send_email($email, $subject, $message, $from, $priority, $mime) : Pour envoyer un mail en texte ou html via les fonctions mail ou email
function send_email($email, $subject, $message, $from="", $priority=false, $mime=false) {
global $mail_fonction, $adminmail;

if (($mail_fonction==1) or ($mail_fonction=="")) {
$From_email=$adminmail;
if ($from!="") { $From_email=$from; }
require "modules/newsletter/phpmailer/class.phpmailer.php";
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='smtp.xxx.fr';

$mail->From= $From_email;
$mail->FromName = 'Webmaster';
$mail->AddAddress($email);
$mail->AddReplyTo($From_email);
$mail->Subject=$subject;
$mail->Body=$message;
$result=$mail->Send();
echo $email;
echo $result;
$mail->SmtpClose();
unset($mail);

} else {
$pos = strpos($adminmail, "@");
$tomail=substr($adminmail,0,$pos);
$result=email($tomail, $email, $subject, $message, $tomail, "Return-Path:\nX-Mailer: NPDS\n$advance");
}


if ($result) {
return (true);
} else {
return (false);
}

}



Mon problème est que lorsque je test un envoi de LNL sur une groupe comprenant 3 membres, il n'y a qu'un seul mail qui est envoyé...

Petite info (je ne sais pas si ça sert mais bon...), si je place


echo $email;
echo $result;



après


$result=$mail->Send();


le script m'affiche l'adresse mail à laquelle le mail est envoyée et 1

Foilà, n'étant pas très fort en php, si quelqu'un peut me donner une piste, ce serait cool..

Merci :-?
Hotfirenet Hotfireneticon_post
c bizarre ca parait correct ton truc, faut reste a tester
developpeur developpeuricon_post
normal pour le 1 / cela indique que la fonction à bien focntionnée (return true)
vigs vigsicon_post
ok pour le 1, mais si la fonction a bien fonctionné, pourquoi la boucle d'envoi ne se fait pas correctement ?

m'énerve.....
Hotfirenet Hotfireneticon_post
plus de precision !

y'a t'il un message d'erreur ?
vigs vigsicon_post
non, aucun message d'erreur, juste une page blanche après l'envoi...
Hotfirenet Hotfireneticon_post
et tu ne recoi pas de mail ??
vigs vigsicon_post
j'ai un peu bidouiller pour faire des tests.

voici le code que j'utilise :


#autodoc send_email($email, $subject, $message, $from, $priority, $mime) : Pour envoyer un mail en texte ou html via les fonctions mail ou email
function send_email($email, $subject, $message, $from="", $priority=false, $mime=false) {
   global $mail_fonction, $adminmail;

if (($mail_fonction==1) or ($mail_fonction=="")) {
      $From_email=$adminmail;
      if ($from!="") { $From_email=$from; }
    require "modules/newsletter/phpmailer/class.phpmailer.php";
    $mail = new PHPmailer();
    $mail->IsSMTP();
  $mail->IsHTML(true);
    $mail->Host='195.XXX.XXX.XX';

  $mail->Priority='1';


//    $mail->From= $From_email;
        $mail->From= 'webmaster@monsite.com';
    $mail->FromName ='Webmaster';
    $mail->AddAddress($email);
//    $mail->AddReplyTo($From_email);
        $mail->AddReplyTo('webmaster@monsite.com');        
    $mail->Subject=$subject;
    $mail->Body=$message;
    $result=$mail->Send();
    if(!$mail->Send()){ //Teste le return code de la fonction
      echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
    }
    else{      
    }
    $mail->SMTPKeepAlive='False';

    unset($mail);

} else {
$pos = strpos($adminmail, "@");
$tomail=substr($adminmail,0,$pos);
$result=email($tomail, $email, $subject, $message, $tomail, "Return-Path:\nX-Mailer: NPDS\n$advance");
}

   if ($result) {
      return (true);
   } else {
      return (false);
   }

}



Voici le résultat :
via la page prévenir un ami : le mail part et arrive bien mais il arrive en double
via la création de compte ou la perte de mot de passe : le mail part et arrive bien mais il arrive en double
via la petite lettre d'info : seul un utilisateur reçoit un e-mail et en plus il le reçoit en double...

Donc deux problème : envoi de l'e-mail en double et envoi à un seul utilisateur pour la LNL...

Je m'arrache un peu les cheveux...

MErci d'avance pour votre aide
Cordialement :paf

Message édité par : vigs / 02-04-2008 12:20