Bonjour à tous,
J'ai un problème qui ressemble à un problème de débutant. Pourtant, j'ai beau chercher, je n'arrive pas à voir d'où vient l'erreur... Je précise que je ne suis pas un expert en PHP, mais je pense que mon problème, que je vous expose plus loin, est dû à un problème avec ce langage mais je peux me tromper. C'est pourquoi je poste ma question dans la rubique débutant.
En fait, j'ai un formulaire, et un script qui récupère les variables des champs pour envoyer un email. C'est un bête formulaire de contact comme il y en a un peu partout. Ce script fonctionnait très bien sur un site personnel hébergé chez free.
Voici le script en question:
<?php
$ip = getenv("REMOTE_ADDR");
$agent = getenv("HTTP_USER_AGENT");
$aujourdhui = date("d/m/Y H:i:s");
$contents = $ip . "\r\n" . $aujourdhui . "\r\n" . $agent;
$to = 'contact' . '@' . 'monsite.com';
$email = $_POST['email'];
$sujet = '[monsite] ' . $_POST['subject'];
$message = $_POST['body'] . "\r\n\r\n" . "--\r\n" . $contents;
$headers = 'From: ' . $email . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$strippedmessage = stripslashes( $message );
$sujet2 = stripslashes( $sujet );
if ( mail( $to, $sujet2, $strippedmessage, $headers ) ) {
header("location: ../envoi-correct.html");
else {
header("location: ../erreur-envoi.html");
?>
Et voici ce que j'obtiens comme email:
Or, dernièrement, j'ai créé un autre site chez un autre hébergeur mais je pense que le problème ne vient pas de l'hébergeur. Et là, le même script ne m'envoie plus d'emails... Par contre, le passage des variables du formulaire au script se fait correctement.
Voilà le morceau de code qui me fait dire ça:
Code : Tout sélectionner
echo '$to = ' . $to . "\r\n";
echo '$sujet2 = ' . $sujet2 . "\r\n";
echo '$strippedmessage = ' . $strippedmessage . "\r\n";
echo '$headers = ' . $headers . "\r\n";
Et voila ce que j'obtiens en sortie (je précise que le résultat est une page html sur une seule ligne. Les retours chariot ne sont pas pris en compte pour une raison que je ne connais pas encore. Dans un éditeur, les retours chariot sont pris en compte):
Code : Tout sélectionner
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>$to = [email protected]
$sujet2 = [monsite] Ceci est le sujet
$strippedmessage = Et ceci est le message
--
xxx.yyy.zzz.ttt
10/08/2016 21:57:44
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
$headers = From: [email protected]
Reply-To: [email protected]
X-Mailer: PHP/7.0.4-7ubuntu2
</body></html>
Ca ne vient pas non plus de mon nouveau hébergeur car quand je fais ce qui suit chez cet hébergeur, l'email est bien envoyé. Voici le morceau de code qui me fait dire ça:
<?php
$to = '[email protected]';
$sujet = 'Essai de messagerie';
$message = 'Ceci est le texte de mon message';
$headers = 'From: [email protected]'."\r\n" .
'Reply-To: [email protected]'."\r\n" .
'X-Mailer: PHP/' . phpversion();
if ( mail( $to, $sujet, $message, $headers ) ) {
echo( "cool" );}
else {
echo( "shit" );}
?>
Dans ce cas, je reçois l'email en question à
[email protected]. Ca fonctionne! Je n'y comprends plus rien... Est-ce que quelqu'un voit d'où peut venir le problème?
Je vous remercie d'avance et je m'excuse pour le cas où ma question serait triviale.
Bonjour à tous,
J'ai un problème qui ressemble à un problème de débutant. Pourtant, j'ai beau chercher, je n'arrive pas à voir d'où vient l'erreur... Je précise que je ne suis pas un expert en PHP, mais je pense que mon problème, que je vous expose plus loin, est dû à un problème avec ce langage mais je peux me tromper. C'est pourquoi je poste ma question dans la rubique débutant.
En fait, j'ai un formulaire, et un script qui récupère les variables des champs pour envoyer un email. C'est un bête formulaire de contact comme il y en a un peu partout. Ce script fonctionnait très bien sur un site personnel hébergé chez free.
Voici le script en question:
[php]<?php
$ip = getenv("REMOTE_ADDR");
$agent = getenv("HTTP_USER_AGENT");
$aujourdhui = date("d/m/Y H:i:s");
$contents = $ip . "\r\n" . $aujourdhui . "\r\n" . $agent;
$to = 'contact' . '@' . 'monsite.com';
$email = $_POST['email'];
$sujet = '[monsite] ' . $_POST['subject'];
$message = $_POST['body'] . "\r\n\r\n" . "--\r\n" . $contents;
$headers = 'From: ' . $email . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$strippedmessage = stripslashes( $message );
$sujet2 = stripslashes( $sujet );
if ( mail( $to, $sujet2, $strippedmessage, $headers ) ) {
header("location: ../envoi-correct.html");
else {
header("location: ../erreur-envoi.html");
?>[/php]
Et voici ce que j'obtiens comme email:
[code]Subject: [monsite] essai de sujet
From:
[email protected]Reply-To:
[email protected]X-Mailer: PHP/4.4.3-dev
Date: Wed, 10 Aug 2016 20:32:14
To:
[email protected]Message-Id: <
[email protected]>
essai de message
--
xxx.yyy.zzz.ttt
10/08/2016 22:21:27
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0[/code]
Or, dernièrement, j'ai créé un autre site chez un autre hébergeur mais je pense que le problème ne vient pas de l'hébergeur. Et là, le même script ne m'envoie plus d'emails... Par contre, le passage des variables du formulaire au script se fait correctement.
Voilà le morceau de code qui me fait dire ça:
[code]echo '$to = ' . $to . "\r\n";
echo '$sujet2 = ' . $sujet2 . "\r\n";
echo '$strippedmessage = ' . $strippedmessage . "\r\n";
echo '$headers = ' . $headers . "\r\n";[/code]
Et voila ce que j'obtiens en sortie (je précise que le résultat est une page html sur une seule ligne. Les retours chariot ne sont pas pris en compte pour une raison que je ne connais pas encore. Dans un éditeur, les retours chariot sont pris en compte):
[code]<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>$to =
[email protected]$sujet2 = [monsite] Ceci est le sujet
$strippedmessage = Et ceci est le message
--
xxx.yyy.zzz.ttt
10/08/2016 21:57:44
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
$headers = From:
[email protected]Reply-To:
[email protected]X-Mailer: PHP/7.0.4-7ubuntu2
</body></html>[/code]
Ca ne vient pas non plus de mon nouveau hébergeur car quand je fais ce qui suit chez cet hébergeur, l'email est bien envoyé. Voici le morceau de code qui me fait dire ça:
[php]<?php
$to = '
[email protected]';
$sujet = 'Essai de messagerie';
$message = 'Ceci est le texte de mon message';
$headers = 'From:
[email protected]'."\r\n" .
'Reply-To:
[email protected]'."\r\n" .
'X-Mailer: PHP/' . phpversion();
if ( mail( $to, $sujet, $message, $headers ) ) {
echo( "cool" );}
else {
echo( "shit" );}
?>[/php]
Dans ce cas, je reçois l'email en question à
[email protected]. Ca fonctionne! Je n'y comprends plus rien... Est-ce que quelqu'un voit d'où peut venir le problème?
Je vous remercie d'avance et je m'excuse pour le cas où ma question serait triviale.