envoi email automatique

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 : envoi email automatique

Re: merci

par Sékiltoyai » 28 avr. 2007, 23:09

J'ai trouvé d'où venait le problème, il me manquait juste à préciser htmlentities.
Ah, je n'y avais point pensé...

merci

par totie » 28 avr. 2007, 19:53

Ok, je prends bien note de ce que tu me dis Sékiltoyai.
J'ai trouvé d'où venait le problème, il me manquait juste à préciser htmlentities.

Voici le code qui marche!
  $adresse=htmlentities($_POST['adresse']); 
$sujet = 'test'; 

$expediteur = '[email protected]'; 
// message 
     $message = ' 
     <html> 
      <head> 
       <title>hello</title> 
      </head> 
      <body> 
       <p>patati patata</p> 
        
      </body> 
     </html> 
     '; 

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini 
     $headers  = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

   $headers .= 'From: "mon nom"<'.$expediteur.'>'."\n"; // Expediteur 
    
  
  
     // Envoi 
     mail($adresse, $sujet, $message,$headers); 
 



Comme vous le voyez, j'ai un peu modifié le code au fur et à mesure des tests, mais maintenant ça marche! :)

Merci de votre soutien et de votre aide! :)))

par Sékiltoyai » 28 avr. 2007, 09:56

C'est une erreur qui ne pouvait qu'arriver un jour ou l'autre. Quand tu utilises les données d'un formulaire, il faut vérifier qu'elles existent :
$email = isset($_POST ['email']) ? $_POST ['email'] : 'valeur par défaut'; 
sachant que la valeur par défaut est souvent une valeur invalide comme NULL ou '' de manière à ce que l'on puisse ensuite vérifier l'intégrité des données :
if( $email != '' )
{
...
}
(C'est possible de faire les deux en même temps bien sûr).

Ca ne règle pas ton problème, mais enlève l'erreur et évite les problèmes d'intégrité de ton script. Ton problème doit venir d'une entrée de formulaire différente du nom que tu as utilisé en php (classiquement tu utilises 'email' dans le code php et 'mail' dans le code html). Pour trouver plus facilement le problème, pense à faire un var_dump($_POST); pour explorer le contenu de la variable.

indice

par totie » 28 avr. 2007, 02:32

A priori ça vient de

Code : Tout sélectionner

$email = $_POST ['email'];
car quand je le remplace par là ça marche.

Par contre je n'arrive pas à résoudre ce problème....

euh...

par totie » 28 avr. 2007, 02:06

Effectivement ce n'est pas aussi magique que ça.... Je n'y arrive toujours pas en fait! :oops:


J'ai un peu modifié mon code, mas toujours en utilisant la méthode POST.... (et oui je voulais un joli email quand même! ) ;)

voic le code:
<? 

include ('connexion.php'); 
 $select = mysql_select_db($base); 

//récupération des variables 
     
     
// Destinataire 
    $email = $_POST['email'];  
// Sujet 
     $sujet = 'patati'; 

// message 
     $message = ' 
     <html> 
      <head> 
       <title>patatra</title> 
      </head> 
      <body> 
       <p>coucou</p> 
        
      </body> 
     </html> 
     '; 

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini 
     $headers  = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

     // En-têtes additionnels 
     $headers .= 'From: mon nom<[email protected]>' . "\r\n"; 
     
     // Envoi 
     mail($email, $sujet, $message, $headers); 
?> 
et je reçois cette erreur:

Code : Tout sélectionner

Warning: mail() [function.mail]: Invalid mail. to = [] in .... on line 35
La ligne 35 est la suivante:
 mail($email, $sujet, $message, $headers); 
J'ai pourtant l'impression que cette ligne va bien, et jai beau chercher partout je ne vois pas d'où vient le problème.

Merci d'avance pour votre aide...

:wink:

Re: n'importe quoi moi! :roll:

par Sékiltoyai » 28 avr. 2007, 01:28

Et oui, je craignais qu'avec cette méthode, ça récupère d'autres adresses qui seraient dans la base de données! Non mais je me fais halluciner toute seule! :fete:
L'informatique, c'est quelquefois magique, mais pas tant que ca non plus :)

Re: n'importe quoi moi! :roll:

par dunbar » 28 avr. 2007, 01:22

Et oui, je craignais qu'avec cette méthode, ça récupère d'autres adresses qui seraient dans la base de données! Non mais je me fais halluciner toute seule! :fete:

Moi-même ou comment se compliquer la vie quand elle est simple....


Merci! ;-)
De rien :wink:

n'importe quoi moi! :roll:

par totie » 28 avr. 2007, 00:32

Et oui, je craignais qu'avec cette méthode, ça récupère d'autres adresses qui seraient dans la base de données! Non mais je me fais halluciner toute seule! :fete:

Moi-même ou comment se compliquer la vie quand elle est simple....


Merci! ;-)

reponse

par totie » 27 avr. 2007, 20:14

Avec cette méthode, je crains que ça pose un problème si plusieurs visiteurs sont inscrits dans la base de données... En fait, je ne veux envoyer un email qu'à la personne qui vient tout juste de s'inscrire.

Je vais essayer avec la méthode POST, et je vous tiens au courant! :)

Re: envoi email automatique

par dunbar » 27 avr. 2007, 20:04

Bonjour,

Voilà ce que je souhaite réaliser:

Je voudrais à partir d'un formulaire ne contenant qu'un champ email pouvoir envoyer automatiquement après l'inscription un email à l'adresse que le visiteur a indiquée:

J'ai tapé le script suivant:
include ('connexion.php') 


//récupération des variables 
$adresse_dest = $_GET['adresse_dest'];  
$sujet= $_POST['Merci de votre inscription']; 
$texte= $_POST['Patati patata']; 


//Envoi de l'email 
  mail($adresse_dest,$sujet,$texte, 
       "From: $adresse_exp\nreplyTo: $adresse_exp"); 

J'ai un problème au niveau de l'adresse du destinataire. Je n'arrive tout simplement pas à la récupérer.

Je vous remercie des conseils que vous pourriez me donner.
A très bientôt.....!
Moi je ferais
$adresse_dest   = $_POST['adresse_dest'];

envoi email automatique

par totie » 27 avr. 2007, 19:57

Bonjour,

Voilà ce que je souhaite réaliser:

Je voudrais à partir d'un formulaire ne contenant qu'un champ email pouvoir envoyer automatiquement après l'inscription un email à l'adresse que le visiteur a indiquée:

J'ai tapé le script suivant:
include ('connexion.php') 


//récupération des variables 
$adresse_dest = $_GET['adresse_dest'];  
$sujet= $_POST['Merci de votre inscription']; 
$texte= $_POST['Patati patata']; 


//Envoi de l'email 
  mail($adresse_dest,$sujet,$texte, 
       "From: $adresse_exp\nreplyTo: $adresse_exp"); 

J'ai un problème au niveau de l'adresse du destinataire. Je n'arrive tout simplement pas à la récupérer.

Je vous remercie des conseils que vous pourriez me donner.
A très bientôt.....!