[RESOLU] probleme php mailer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] probleme php mailer

Re: probleme php mailer

par Ez3kiel » 09 juin 2011, 11:25

[HS]D'accord, je connaissais pas PHP Mailer, merci.[/HS] :)

Re: probleme php mailer

par moogli » 09 juin 2011, 11:10

@Ez3kiel : plus simple, pas besoin de gérer l'entete ou quoi que se soit la classe le fait pour toi :)
D'ailleurs la fonction mail de php ne permet pas d'utiliser serveur smtp quelconque. Il y a une seule conf dans le php.ini et c'est pareil pour 51200000 site héberger sur le serveur ;)
Ca permet aussi de lever les restrictions indiqué dans le. Premier message

Pour le setFrom c'est possible je nome souvient plus si c'est une methode ou une priorité de la classe ;)

@+

Re: probleme php mailer

par Ez3kiel » 09 juin 2011, 09:17

Et pourquoi tu n'utilises pas la fonction Mail ?

Re: probleme php mailer

par stcrea » 08 juin 2011, 23:07

Bonjour a tous


j'ai l'erreur Call to undefined method PHPMailer::SetFrom() in /homez.xxx/xxx/www/borvalidbd.php on line 87

avec ce code
$mail-> SetFrom ("[email protected]");

plus d'erreur avec ce code

$mail-> SetFrom = ("[email protected]");

Mais je ne reçoit pas de mail

Re: probleme php mailer

par moogli » 05 juin 2011, 12:14

salut,


je ne connais pas particulièrement cette classe mais en regardant les exemples de leurs tuto je vois qu'il manque l'adresse mail du destinataire (placé avec $mail->AddAddress( '[email protected]'); )

qu'est ce que ce bout de code est sencé faire ?
<?php
$mail->  $recip = ("[email protected]");
 $mail->  $reply = ("[email protected]");
 $mail->  $objet = ("Bordereau de chargement N $numbor");
 $mail->  $message = ("$mesbor");
 $mail->  $headers .= ("From: $fornom $forcli <[email protected]>\n");
 $mail->  $headers .= ("X-priority: 1\n");
 $mail->  $headers .= ("Content-type: text/plain; charset=iso-8859-1\n");
 $mail->  $headers .= ("Content-Transfert-Encoding: 7bit\n");
 $mail->  $nomfich = ("BO$numbor.txt");
 $mail->  $headers .= ("Content-Disposition: attachment; filename=$nomfich\n");
?>
connais tu la notion de variable dynamique ? parce que la c'est ce que tu fait et ça doit pas être terrible :/

tu n'a pas besoin d’utilisé de () autour d'une chaine de caractère ;)

Des exemples => http://phpmailer.worxware.com/index.php?pg=tutorial

je pense que si tu vire les $ ça ira mieux

la classe gère elle même l’entête, donc pas besoin de headers.

la méthode Send ne prend pas de pramètre.

A tu lu de la doc ?

ton code devrais ressembler a ceci
<?php
require_once('phpmailer/class.phpmailer.php');

$mail = new PHPMailer();
 
$mail->IsSMTP(); // telling the class to use SMTP
try {
	$mail->Host          = ("smtp.xxx.fr");
	$mail->SMTPAuth      = true;                  // enable SMTP authentication
	$mail->SMTPKeepAlive = true;                  // SMTP connection will not close after each email sent
	$mail->Host          = ("[email protected]"); // sets the SMTP server
	$mail->Port          = 587;                    // set the SMTP port for the GMAIL server
	$mail->Username      = ("[email protected]"); // SMTP account username
$mail->Password      = ("xxx");        // SMTP account password
} catch (phpmailerException $e) {
	echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
	echo $e->getMessage(); //Boring error messages from anything else!
}
$user = "xxx";
$password = "xxx";
$database = "xxx";
$host = "xxx";

$connect = mysql_connect($host, $user, $password) or die(mysql_error());
    mysql_select_db($database);
       
$forcli = $Cookcli;
$result = mysql_query ("select * from client where codecli = '$forcli'");
$row = mysql_fetch_object($result);

echo "<FONT SIZE=+3>";
echo "<DIV ALIGN=center><FONT COLOR=\"#0000CC\"><B>$forcli           $row->nom</B></FONT></DIV>";
echo "</FONT>";
echo "<HR SIZE=3 NOSHADE>";

$forcli = $Cookcli;
$fornom = $Cooknom;
if ($forcli < 1)
   {echo "<B><FONT SIZE=+1>Votre session est terminée, vous devez vous identifier à nouveau...</FONT></B>";}

$fordate = gmdate("Y-m-d");
$nb = 1;
if ($forcli < 1) {$nb = 0;}

 $result = mysql_query("select * from bordereau left join dossier on dossier.numdos = bordereau.numdos where  bordereau.numbor = '$numbor' and bordereau.etat = 1
        order by bordereau.numbor, bordereau.numdos ");

$nb2 = 0;
if ($result) {$nb2 = mysql_num_rows($result);}
if ($nb2 == 0) {$nb = 0;}
if ($nb > 0)
   {while ($row = mysql_fetch_object($result))
          {
          $si = " numbor = $row->numbor and numdos = $row->numdos ";
          $majbor = mysql_query
                          ("update bordereau set etat = 2 where ".$si);
          $mesbor .= "$forcli $row->typetrans $fornom;$row->numdos;";    
          $mesbor .= "$row->reference;$row->nom;$row->adresse1;$row->adresse2;";
          $mesbor .= "$row->codepostal;$row->ville;$row->codepays;";
          $mesbor .= "$row->nbcolis;$row->poids;$row->volume;$row->metreplancher;";
          $mesbor .= "$row->portdu;$row->cr;$row->crdevise;";
          $mesbor .= "$row->cr2;$row->crdev2;";
          $mesbor .= "$row->vd;$row->vddevise;$row->commentaire;";
          $mesbor .= "$row->express;$row->hayon;$row->teldesti;";
          $mesbor .= "$row->nbpalettes;$row->obspalette;\n";
          }
        ;}
$mesbor = strtoupper($mesbor);
$ligne1 = "<br>";
$ligne2 = "<br>le bordereau numéro <B>$numbor</B> est transmis";
if ($nb > 0) {
	echo "$ligne1 $ligne2";
	try {
		$mail->  SetFrom ("[email protected]");
		$mail->  AddReplyTo ("[email protected]");
		$mail->  Subject ="Bordereau de chargement N $numbor");
		$mail->  message = ("$mesbor");
		$mail->  AddAdress('[email protected]');
		$mail->  AltBody = $mesbor;
		$mail->AddAttachment("BO$numbor.txt"); 
		$mail->Send();
	} catch (phpmailerException $e) {
		echo $e->errorMessage(); //Pretty error messages from PHPMailer
	} catch (Exception $e) {
		echo $e->getMessage(); //Boring error messages from anything else!
}
}

if ($nb >0)
   {echo "<BR><BR><DIV ALIGN=\"center\">
                 <A HREF=\"borimp.php? numbor=$numbor\" TARGET=_blank>Imprimer le bordereau</A>
                 &nbsp;&nbsp;&nbsp;
                 <A HREF=\"bordefinitif.php\" TARGET=_self>Retour</A>
   </DIV>" ;}  
?>
@+

Re: probleme php mailer

par Ryle » 05 juin 2011, 11:49

Je ne connais pas php mailer, mais je suppose qu'ils ont une doc ou un forum pour ce genre de problème... cependant, je ne pense pas que la façon dont ton mail est envoyé (que ce soit pas ton script qui va faire appel à la fonction mail d'ovh, ou par php mailer qui fera de même) influe sur le temps d'expédition et de relais des mails.... :-k

probleme php mailer

par stcrea » 04 juin 2011, 21:26

Bonjour a tous

En quelques mots voici mon problème

J'utilise php pour envoyé un mail dans un script mais je suis hébergé chez OVH et mon mail arrive aléatoirement 5 minutes a 3h00 après.

Pour être sur de recevoir mon mail dans les temps je souhaite utilisé la class php mailer que j'ai télécharger et mise sur mon serveur

Malheureusement je ne sais pas par ou commencer pour la transformation de mon script

Pouvez vous m'aider

j'ai l'erreur : Mailer Error: Language string failed to load: provide_address
<?php
require_once('phpmailer/class.phpmailer.php');

$mail = new PHPMailer();
 
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host          = ("smtp.xxx.fr");
$mail->SMTPAuth      = true;                  // enable SMTP authentication
$mail->SMTPKeepAlive = true;                  // SMTP connection will not close after each email sent
$mail->Host          = ("[email protected]"); // sets the SMTP server
$mail->Port          = 587;                    // set the SMTP port for the GMAIL server
$mail->Username      = ("[email protected]"); // SMTP account username
$mail->Password      = ("xxx");        // SMTP account password


$user = "xxx";
$password = "xxx";
$database = "xxx";
$host = "xxx";

$connect = mysql_connect($host, $user, $password) or die(mysql_error()); 
    mysql_select_db($database);
	
$forcli = $Cookcli;
$result = mysql_query ("select * from client where codecli = '$forcli'");
$row = mysql_fetch_object($result);

echo "<FONT SIZE=+3>";
echo "<DIV ALIGN=center><FONT COLOR=\"#0000CC\"><B>$forcli           $row->nom</B></FONT></DIV>";
echo "</FONT>";
echo "<HR SIZE=3 NOSHADE>";

$forcli = $Cookcli;
$fornom = $Cooknom;
if ($forcli < 1) 
   {echo "<B><FONT SIZE=+1>Votre session est terminée, vous devez vous identifier à nouveau...</FONT></B>";}

$fordate = gmdate("Y-m-d");
$nb = 1;
if ($forcli < 1) {$nb = 0;}

 $result = mysql_query("select * from bordereau left join dossier on dossier.numdos = bordereau.numdos where  bordereau.numbor = '$numbor' and bordereau.etat = 1 
	order by bordereau.numbor, bordereau.numdos ");

$nb2 = 0;
if ($result) {$nb2 = mysql_num_rows($result);}
if ($nb2 == 0) {$nb = 0;}
if ($nb > 0)
   {while ($row = mysql_fetch_object($result))
	  {
	  $si = " numbor = $row->numbor and numdos = $row->numdos ";
	  $majbor = mysql_query
	  		  ("update bordereau set etat = 2 where ".$si);
	  $mesbor .= "$forcli $row->typetrans $fornom;$row->numdos;";	  
	  $mesbor .= "$row->reference;$row->nom;$row->adresse1;$row->adresse2;";
	  $mesbor .= "$row->codepostal;$row->ville;$row->codepays;";
	  $mesbor .= "$row->nbcolis;$row->poids;$row->volume;$row->metreplancher;";
	  $mesbor .= "$row->portdu;$row->cr;$row->crdevise;";
	  $mesbor .= "$row->cr2;$row->crdev2;";
	  $mesbor .= "$row->vd;$row->vddevise;$row->commentaire;";
	  $mesbor .= "$row->express;$row->hayon;$row->teldesti;";
	  $mesbor .= "$row->nbpalettes;$row->obspalette;\n";
	  }
	;}
$mesbor = strtoupper($mesbor);
$ligne1 = "<br>";
$ligne2 = "<br>le bordereau numéro <B>$numbor</B> est transmis";
if ($nb > 0) {echo "$ligne1 $ligne2";
 $mail->  $recip = ("[email protected]");
 $mail->  $reply = ("[email protected]");
 $mail->  $objet = ("Bordereau de chargement N $numbor");
 $mail->  $message = ("$mesbor");
 $mail->  $headers .= ("From: $fornom $forcli <[email protected]>\n");
 $mail->  $headers .= ("X-priority: 1\n");
 $mail->  $headers .= ("Content-type: text/plain; charset=iso-8859-1\n");
 $mail->  $headers .= ("Content-Transfert-Encoding: 7bit\n");
 $mail->  $nomfich = ("BO$numbor.txt");
 $mail->  $headers .= ("Content-Disposition: attachment; filename=$nomfich\n");
  
   }

if(!$mail->Send($recip, $objet, $message, $headers)) {
echo "Mailer Error: " . $mail->ErrorInfo;
}else {
echo "Message sent!";
}

if ($nb >0) 
   {echo "<BR><BR><DIV ALIGN=\"center\">
   		 <A HREF=\"borimp.php? numbor=$numbor\" TARGET=_blank>Imprimer le bordereau</A>
   		 &nbsp;&nbsp;&nbsp;
		 <A HREF=\"bordefinitif.php\" TARGET=_self>Retour</A>
   </DIV>" ;}   
?>