envoi de mail

Eléphant du PHP | 162 Messages

07 avr. 2012, 15:07

salut j'ai un problème d'envoi de mail.
j'ai crée un code pour l'imputation de courrier aux agents de mon ministère.
alors je voudrais que dès qu'on enregistre le formulaire automatiquement un message soit envoyé à celui à qui on a imputé le courrier .

j'ai fait le test avec mon propre mail pour voir ça marchait et le page indique message envoyé avec sucées mais moi je réçois rien comme message .
alors si quelqu'un pouvait m'aider a résoudre ce problème .
voici ce qui s'affiche :

Nous sommes le 07-04-2012 et il est 12:55 N° 1 - : envoyé avec succés!
N° 2 - [email protected] : envoyé avec succés!

voici mon code php :
<?php
if (isset($_POST["valider"])) {
    
      /*IMPORTANT*/ 

include("connection.php"); 

/*faut securiser*/ 
foreach($_POST as $k => $v){ 
$v=mysql_real_escape_string(strip_tags($v)); 
$_POST[$k]=$v; 
} 

/*faut securiser*/ 
foreach($_GET as $k => $v){ 
$v=mysql_real_escape_string(strip_tags($v)); 
$_POST[$k]=$v; 
}
   
    $NumEnreg=trim($_POST["NumEnreg"]);
    $dateArrCourrier=trim($_POST["dateArrCourrier"]);
	$dateReinsert=trim($_POST["dateReinsert"]);
	$expediteur=trim($_POST["expediteur"]);
	$destinataire=trim($_POST["destinataire"]);
	$DateImput=trim($_POST["DateImput"]);
	$delaisImput=trim($_POST["delaisImput"]);
	$instructions=trim($_POST["instructions"]);
	$autreInstruction=trim($_POST["autreInstruction"]);
	$contact=trim($_POST["contact"]);
	$NoteDirCab=trim($_POST["NoteDirCab"]);
	$NoteMinitr=trim($_POST["NoteMinitr"]);
	$monemail=trim($_POST["monemail"]);
	 //requète sql
    $sql = "SELECT NumEnreg FROM Courrierimputation WHERE NumEnreg='$NumEnreg'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 

      if($res!=0)  // l'url existe déjà, on affiche un message d'erreur 
        { 
             $msg = 'Désolé, mais ce numero  existe déjà dans notre base.'; 
             echo '<script>alert(\' '.$msg.' \');</script>';
        } 
      else  // L'url n'existe pas, on insère les informations du formulaire dans la table 
        { 

// insertion de l'ex-combattants
 $sql = "INSERT INTO Courrierimputation(      id,NumEnreg,dateArrCourrier,expediteur,destinataire,monemail,DateImput,delaisImput,instructions,autreInstruction,contact,NoteDirCab,NoteMinitr)																																																																																																																																																																																				VALUES('','".$NumEnreg."','".$dateArrCourrier."','".$expediteur."','".$destinataire."','".$monemail."','".$DateImput."','".$delaisImput."','".$instructions."','".$autreInstruction."','".$contact."','".$NoteDirCab."','".$NoteMinitr."')";
      // on insère les informations du formulaire dans la table  
    $result= mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
      $msg =  'Les informations sur le courrier ont été ajoutées ont été ajoutées dans la base de données.</br>';
      ///echo '<font color="red">'.$msg.'</font>'; 
      echo '<script>alert(\' '.$msg.' \');</script>';
	

      }
	  if($result) 
	     {
		     $q = mysql_query("SELECT monemail FROM Courrierimputation"); // requete 
  $compteur=1; // variable pour compter les mails 
  while ($r = mysql_fetch_array($q)) {  
  $e_mail = $r['monemail']; //prend l'email de la table 

  // 1 exemple de contenu du mail 
  $contenu = 'Bonjour! <br />Email : '.$e_mail.'<br />'; 
  $contenu .= 'Voici la derniere newletters::'; 
  $contenu .= 'Au revoir <br /><br />'; 
  
  // envoi du mail HTML 
  $from = "From: hello <[email protected]>\nMime-Version:"; 
  $from .= " 1.0\nContent-Type: text/html; charset=ISO-8859-1\n"; 
  // envoie du mail 
  mail($e_mail,$titre,$contenu,$from); 

        echo'N° '.$compteur.' - '.$e_mail.' : envoyé avec succés!<br />'; 
        $compteur++; // ajoute 1 à la variale du compteur 
        }  // fin du while 
		 
		 }

}
?>

ViPHP
AB
ViPHP | 5818 Messages

07 avr. 2012, 17:59

Teste ton envoi de mail dans une page séparée (en prenant exemple sur le manuel) et quand ça marche intègre ton code dans la page en cour. Tu verras mieux l'origine du problème.

Eléphant du PHP | 162 Messages

07 avr. 2012, 19:02

comment tester ça sans un formilaire .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 avr. 2012, 19:11

Tu peux par exemple utiliser des valeurs en "dur" au lieu de récupérer celles d'un formulaire...

Pis tu n'auras plus qu'à les rendre dynamique quand ton code sera opérationnel :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 162 Messages

07 avr. 2012, 19:14

vraiment je suis débutant je suis un peu perdu explique moi mieux

Eléphant du PHP | 162 Messages

07 avr. 2012, 19:18

peu tu me passer un tuto bien expliqué qui adapté a mon problème .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 avr. 2012, 19:19

Commence simplement avec un :
 mail("ton-adresse-mail", "Test d'envoi de mail", "corps du message"); 
En ajoutant ton adresse mail... tu regardes si tu reçois le mail ou si tu as un message d'erreur, pis ensuite tu remplace progressivement par tes variables et tu tests au fur et à mesure :)


Edit : et pour un tuto sur les envois de mail, il suffit de chercher un peu sur le forum...
faq-tutoriels/fonction-mail-installatio ... t3928.html
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 162 Messages

07 avr. 2012, 19:33

je fais pas à pas comment tu me l'a conseillé .
voici la partie du code concernant le mail que je viens de modifier .
on m'affiche : envoyé avec succés
mais je reçois pas de mail .
	  if($result) 
	     {
		   
  // envoie du mail 
  mail("[email protected]"); 

        echo' envoyé avec succés!<br />'; 
      
        } 

Eléphant du PHP | 162 Messages

07 avr. 2012, 19:46

peu etre que mon problème se trouve dans PHP.ini au niveau du paramètre .

voici dans mon fichier php.ini la pairtie du mail :

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25


j'utilise une connection adsl .
orange
aviso.ci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 avr. 2012, 23:35

Effectivement, si tu n'héberges pas un serveur de mail sur ton pc, l'adresse localhost n'est pas correcte. Si tu testes en local, le mieux c'est effectivement d'utiliser le smtp de ton fournisseur d'accès internet dans le php.ini :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 162 Messages

07 avr. 2012, 23:40

je viens de constater que si je me trompe pas que mon SMTP est : smtp.aviso.ci
aviso est mon fournisseur internet .
j'ai donc mi dans php.ini :

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.aviso.ci
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]


mais toujours rien n'est envoyé comme mail .
voici ce qui s'affiche :

Warning: mail() [function.mail]: SMTP server response: 450 4.1.7 <[email protected]>: Sender address rejected: undeliverable address: host mx-eu.mail.am0.yahoodns.net[77.238.177.9] said: 501 Syntax error in parameters or arguments (in reply to MAIL FROM command) in C:\wamp\www\INFO\info00.php on line 16

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 avr. 2012, 11:07

Le message d'erreur t'indique que l'utilisateur qui envoi le mail est refusé. En gros, Aviso ne te laisse pas envoyer un mail sur leur serveur avec ton adresse yahoo. Il faut probablement utiliser ton adresse orange ou aviso pour qu'il autorise l'envoi de mail comme si tu l'envoyais depuis ta messagerie :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 162 Messages

08 avr. 2012, 16:03

peu être que je comprend pas bien mais j'ai pas d'adresse orange ni aviso ou bien vous parlé de mon login pour me connecter a aviso