envoi de mail

envoi de mail - PHP - Programmation

Marsh Posté le 10-06-2004 à 11:01:40    

bonjour,
 
g un probleme pour envoyer un mail.
il ne l'envoie pas.
fichier de creation de mail:

Code :
  1. if($etat=='1'){
  2.  $to  = "rcauchy@wanadoo.fr";
  3.  $subject ='Nouvelle note de frais';
  4.  $message = "<html><body><p align=center style=\"font-family:verdana;font-size:12;\"><b>NOUVELLE NOTE DE FRAIS DEPOSEE SUR L'INTRANET</b></p>";
  5.  $message.= "<table align=center cellspacing=1 cellpadding=5 bgcolor=#000000 width=350><tr><td height=30 bgcolor=#FFFFFF style=\"font-family:verdana;font-size:12;\">Collaborateur : </td><td bgcolor=#FFFFFF style=\"font-family:verdana;font-size:12;\">$nom $prenom</td></TR>";
  6.  $message.= "<tr><td height=30 bgcolor=#FFFFFF style=\"font-family:verdana;font-size:12;\">Periode : </td><td bgcolor=#FFFFFF style=\"font-family:verdana;font-size:12;\">$mois/20$annee</td></tr></table>";
  7.  $message.= "<p align=center><a href=\"http://www.consept-informatique.com/intranet/index.php\" style=\"font-family:verdana;font-size:12;\">Cliquez ici pour accéder à l'intranet</a></p></body></html>";
  8.  include("sendmail.php" );
  9. }


 
fichier envoi mail:

Code :
  1. <?php
  2. $mois=abs($mois)-1;
  3. $mois_tbl=array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','D&eacute;cembre');
  4. $mois=$mois_tbl[$mois];
  5. $to  = "davidmornet@hotmail.com"; // notez la virgule
  6. $headers  = "MIME-Version: 1.0\r\n";
  7. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  8. $from = "consept_informatique@wanadoo.fr";
  9. $headers .= "Cc: rcauchy@freesurf.fr\r\n";
  10. if (send_mail($to, $from,$subject, $message, $headers))
  11. {
  12. print("<script language='javascript'>alert('ok');</script>" );
  13. }
  14. function send_mail($to,$from,$subject,$message, $headers) {
  15. print("envoie du message\r\n" );
  16. //------------------------------------------
  17. //*** envoi de l'email pour confirmation ***
  18. //------------------------------------------
  19. $noerror=1;
  20. if ($sh=fsockopen("smtp.wanadoo.fr",25)) {
  21.  $b=fgets($sh,128);
  22.  fputs($sh,"HELO WORLD\r\n" );
  23.  $b=fgets($sh,128);
  24.  if (substr($b,0,3) == "250" ) {
  25.   fputs($sh,"MAIL FROM:<".$from.">\r\n" );
  26.   print("MAIL FROM: $from\r\n" );
  27.   $b=fgets($sh,128);
  28.   if (substr($b,0,3) == "250" ) {
  29.    fputs($sh,"RCPT TO:<".$to.">\r\n" );
  30.    print("RCPT TO: $to\r\n" );
  31.    $b=fgets($sh,128);
  32.    if (substr($b,0,3) == "250" ) {
  33.     fputs($sh,"DATA\r\n" );
  34.     $b=fgets($sh,128);
  35.     if (substr($b,0,3) == "354" ) {
  36.      fputs($sh,"Subject: ".$subject."\r\n" );
  37.      print("Subject: $subject\r\n" );
  38.      fputs($sh,$headers);
  39.      print("$headers\r\n" );
  40.      fputs($sh,$data);
  41.      print("$data\r\n" );
  42.      fputs($sh,"\r\n.\r\n" );
  43.      $b=fgets($sh,128);
  44.      if (substr($b,0,3) == "250" ) {
  45.       fputs($sh,"QUIT\r\n" );
  46.       $b=fgets($sh,128);
  47.       if (substr($b,0,3) == "221" ) {
  48.       } else {
  49.        $noerror=0;
  50.       }
  51.      } else {
  52.       $noerror=0;
  53.      }
  54.     } else {
  55.      $noerror=0;
  56.     }
  57.    } else {
  58.     $noerror=0;
  59.    }
  60.   } else {
  61.    $noerror=0;
  62.   }
  63.  } else {
  64.   $noerror=0;
  65.  }
  66.  fclose($sh);
  67. } else {
  68.  $noerror=0;
  69. }
  70. return $noerror;
  71. print("$noerror" );
  72. }
  73. ?>


 
en fait il va sur la page d'envoi mais s'arrete.
G a lécran

Code :
  1. envoie du message MAIL FROM:consept-informatique@wanadoo.fr RCPT TO:davidmornet@hotmail.com


mais pas la suite Subject:......
 
merci

Reply

Marsh Posté le 10-06-2004 à 11:01:40   

Reply

Marsh Posté le 10-06-2004 à 11:10:32    

Je ne sais pas t'aider pour ce sujet, mais regarde la classe phpmailer, elle permet d'envoyer tout type de mail et de le faire via un serveur smtp choisi.
Cela t'aidera peut-être à comprendre ci qui cloche.
 
 
Ton arrêt vient surement du fait que ta fonction ne trouve pas le code réponse 354 dans le dialogue avec le serveur smtp


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 10-06-2004 à 17:33:10    

mon script marchait avant, g du changer de serveur et c à partir de ce moment que ca marche plus. comment faire pour savoir quel sont les code réponse que la fonction reçoit

Reply

Marsh Posté le 10-06-2004 à 17:35:40    

il faut aller voir la norme RFC qui correspond au serveurs SMTP
 
au fait, pourquoi tu n'utilises pas la fonction mail() de PHP ? Ton script ré-invente la roue


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 10-06-2004 à 17:39:10    

comment tu fais pour voir la norme RFC ?
je sais pas pourquoi g repris le travail de mon maitre de stage, ms c vrai que c con.

Reply

Marsh Posté le 10-06-2004 à 17:55:18    

La norme RFC qui correspond -> google
 
Si tu ne comprends pas le code de que tu reprends, plusieurs solutions :  
- étudier en détail chaque fonctions du code avec la doc PHP,  
- lire un ou des tutos sur l'envoi de mail,  
- prendre la classe que je t'ai indiquée et lire sa doc (10 min)


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 11-06-2004 à 09:57:06    

tu connais des adresses de tutos d'envoi de mail?

Reply

Marsh Posté le 11-06-2004 à 10:50:06    

http://phpmailer.sourceforge.net/tutorial.html
http://www.phpfrance.com/tutorials [...] age=1&id=5


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 11-06-2004 à 11:09:22    

merci T509 tu ma bien aidé. Heureusement qu'ya des gens comme toi pour aider les débutants.

Reply

Marsh Posté le 11-06-2004 à 11:12:07    

de rien.  
Je te (re)conseille phpmailer car elle est bien faite et flexible.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed