Formulaire - From

Formulaire - From - PHP - Programmation

Marsh Posté le 06-10-2011 à 09:44:56    

Bonjour,
 
j'ai un formmail.php qui traite les données d'un formulaire.
Voici son contenu :

Code :
  1. <?php
  2. $TO = "contact@sdfdf.com";
  3. $h = "From: " . $TO;
  4. $message = "";
  5. while (list($key, $val) = each($HTTP_POST_VARS)) {
  6. $message .= "$key : $val\n";
  7. }
  8. mail($TO, $subject, $message, $h);
  9. Header("Location: confirmation.html" );
  10. ?>


 
S'avez-vous comment je pourrais faire pour que le "from" du mail que le destinataire reçoit soit l'email du formulaire remplit par l'internaute (id="email" )? Histoire de pouvoir faire répondre direct depuis le client de messagerie.
 
Merci d'avance,


Message édité par kameha le 06-10-2011 à 09:45:25
Reply

Marsh Posté le 06-10-2011 à 09:44:56   

Reply

Marsh Posté le 06-10-2011 à 10:29:31    

Faut construire le header. Ex :  

Code :
  1. // Header of the e-mail
  2. $Splitter = "-----=".md5(uniqid(rand()));
  3.  
  4. $Header = "MIME-Version: 1.0\r\n";
  5. $Header .= "Content-Type: multipart/mixed; boundary=\"$Splitter\"\r\n";
  6. $Header .= "From: $From\r\n";
  7. $Header .= "\r\n";
  8. $Header .= "cc: $Cc\r\n";
  9. $Header .= "bcc: $Bcc\r\n";
  10.  
  11. // Message texte
  12. $msg .= "--$Splitter\r\n";
  13. $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  14. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  15. $msg .= "\r\n";
  16. $msg .= $HtmlMailContent;
  17. $msg .= "\r\n";
  18.  
  19. // End header
  20. $msg .= "--$Splitter--\r\n";
  21.  
  22. return mail($To, mb_encode_mimeheader($Subject), $msg, "Reply-to: $Reply\r\n".$Header);


 
C'est l'idée...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-10-2011 à 10:33:06    

ok merci.
 
Comment ça s'inscrit dans mon code par contre?

Reply

Marsh Posté le 06-10-2011 à 10:45:01    

Voici les équivalences de variables entre ton code et le miens :
$HtmlMailContent = $Message
$Header = $h
$To = $TO
 
Mon code se lit quand même assez facilement pour que tu l'utilises dans le tiens :/ La construction suit les même étapes : header, contenu du mail, envoi..


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-10-2011 à 11:03:33    

Merci. Jgalère un peu, désolé d'avance.
 
Donc genre ça ?

Code :
  1. // Header of the e-mail
  2. $Splitter = "-----=".md5(uniqid(rand()));
  3. $h = "MIME-Version: 1.0\r\n";
  4. $h .= "Content-Type: multipart/mixed; boundary=\"$Splitter\"\r\n";
  5. $h .= "From: $From\r\n";
  6. $h .= "\r\n";
  7. $h .= "cc: $Cc\r\n";
  8. $h .= "bcc: $Bcc\r\n";
  9. // Message texte
  10. $msg .= "--$Splitter\r\n";
  11. $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  12. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  13. $msg .= "\r\n";
  14. $msg .= $Message;
  15. $msg .= "\r\n";
  16. // End header
  17. $msg .= "--$Splitter--\r\n";
  18. return mail($TO, mb_encode_mimeheader($Subject), $msg, "Reply-to: $Reply\r\n".$h);


 
Marche pas


Message édité par kameha le 06-10-2011 à 11:03:47
Reply

Marsh Posté le 06-10-2011 à 11:14:17    

$Reply contient qq chose?
Idem pour $Subject, $Cc et $Bcc; Pour ces 2 derniers, si vides, ne pas mettre les headers cc et bcc.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-10-2011 à 11:22:37    

ça comment à être pas mal :-)
 

Code :
  1. <?php
  2. $TO = "toto@gmail.com";
  3. // Header of the e-mail
  4. $Splitter = "-----=".md5(uniqid(rand()));
  5. $h = "MIME-Version: 1.0\r\n";
  6. $h .= "Content-Type: multipart/mixed; boundary=\"$Splitter\"\r\n";
  7. $h .= "From: $From\r\n";
  8. $h .= "\r\n";
  9. while (list($key, $val) = each($HTTP_POST_VARS)) {
  10. $message .= "$key : $val\n";
  11. }
  12. // Message texte
  13. $msg .= "--$Splitter\r\n";
  14. $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  15. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  16. $msg .= "\r\n";
  17. $msg .= $message;
  18. $msg .= "\r\n";
  19. // End header
  20. $msg .= "--$Splitter--\r\n";
  21. $Subject .= "Nouveau message depuis le site Internet";
  22. $Reply .= $Email;
  23. return mail($TO, mb_encode_mimeheader($Subject), $msg, "Reply-to: $Reply\r\n".$h);
  24. Header("Location: confirmation.html" );
  25. ?>


 
Dernière chose,
- la redirection vers confirmation.html ne joue pas, normal?
- il me dit "expediteur inconnu" dans le message reçu...
- pas de retour à la ligne a chaque ligne du message reçu


Message édité par kameha le 06-10-2011 à 11:29:17
Reply

Marsh Posté le 06-10-2011 à 11:35:15    

le type mime est du html, les \n doivent donc être des <br />
la redirection marche pas puisque tu fait un return sur mail :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-10-2011 à 11:44:32    

et comment faire jouer la redirection?

Reply

Marsh Posté le 06-10-2011 à 11:57:37    

ok supprimé le return simplement merci.
 
Par contre toujours "expediteur inconnu" quand je reçois le mail
Et quand je l'ouvre 1ère ligne j'ai :
de  via 88.mail-out.ovh.net


Message édité par kameha le 06-10-2011 à 12:00:36
Reply

Marsh Posté le 06-10-2011 à 11:57:37   

Reply

Marsh Posté le 06-10-2011 à 14:43:15    

là, ça vient sans doute d'ovh. Y'a souvent de filtres qui sont mis en place pour éviter les spams. Peut-être qu'il faut mettre uniquement un mail dans le from qui appartient à ovh?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-10-2011 à 10:13:58    

Hello,
 
du coup j'ai fait un test sur un autre hébergeur toujours pareil...
 
L'expediteur est toujours marqué inconnu dans GMAIL quand on affiche les mails en mode list.
Et quand j'ouvre le message, j'ai : "via 88.mail-out.ovh.net"  
Par contre, "répondre à" affiche bien l'email de la personne.
 
Revoici mon code pour info, je pense qu'il manque quelque chose :

Code :
  1. <?php
  2. $TO = "toto@gmail.com";
  3. // Header of the e-mail
  4. $Splitter = "-----=".md5(uniqid(rand()));
  5. $h = "MIME-Version: 1.0\r\n";
  6. $h .= "Content-Type: multipart/mixed; boundary=\"$Splitter\"\r\n";
  7. $h .= "From: $From\r\n";
  8. $h .= "\r\n";
  9. while (list($key, $val) = each($HTTP_POST_VARS)) {
  10. $message .= "<strong>$key</strong> : $val<br />";
  11. }
  12. // Message texte
  13. $msg .= "--$Splitter\r\n";
  14. $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  15. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  16. $msg .= "\r\n";
  17. $msg .= $message;
  18. $msg .= "\r\n";
  19. // End header
  20. $msg .= "--$Splitter--\r\n";
  21. $Subject .= "Nouveau message depuis le site Internet";
  22. $Reply .= $Email;
  23. mail($TO, mb_encode_mimeheader($Subject), $msg, "Reply-to: $Reply\r\n".$h);
  24. Header("Location: confirmation.html" );
  25. ?>


Merci


Message édité par kameha le 12-10-2011 à 10:16:58
Reply

Marsh Posté le 12-10-2011 à 11:20:37    

Mais tu mets quoi dans ton $From :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-10-2011 à 11:55:35    

pas con

Reply

Sujets relatifs:

Leave a Replay

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