J'ai récemment appris le HTML, js, CSS et PHP en créant des pages web et en les postant sur mon serveur apache2 hébergé sur mon framboise pi avec une adresse no-ip.com. Mon premier vrai projet d'apprentissage de PHP a été de créer un formulaire simple pour ensuite m'envoyer un email, mais je continue à courir sur le problème de la fonction mail() qui s'exécute sans erreur, mais n'envoie pas de mails.ne pas recevoir d'emails de la fonction php mail()
Voici la forme:
<form class="" action="/FormTesting/sendMail.php" method="post">
Name:<br><input type="text" name="name" value="" required><br>
Email:<br><input type="text" name="email" value="" required><br>
Message:<br><textarea name="message" rows="8" cols="80" required></textarea><br>
Subject:
<input type="radio" name="subject" value="Hello!">Hello!
<input type="radio" name="subject" value="Whats up">Whats Up!<br>
<input type="submit" name="submit" value="Submit">
</form>
est ici la référence du fichier PHP dans « action » attribut de la forme:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$to = "[email protected]";
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$subject = $_POST["subject"];
echo $name;
echo $email;
echo $message;
echo $subject;
$headers = array("From: " . $email,
"Reply-To: " . $to,
"X-Mailer: PHP/" . PHP_VERSION);
mail($to, $subject, $message, $header);
} else {
echo $_SERVER["REQUEST_METHOD"];
}
?>
Je comprends que cette question a été posée, et je J'ai essayé la plupart des méthodes définies par d'autres réponses, mais je n'arrive toujours pas à faire fonctionner la fonction PHP mail(). La meilleure information que j'ai est que je dois faire une sorte d'installation ou de mise en forme sur le serveur lui-même pour permettre l'envoi de courriels, mais je n'ai pas encore trouvé de documentation et/ou d'explication. (I.e. phpMailer - mais quand même ... comment?)
EDIT:
J'ai vérifié la valeur de retour de la fonction de messagerie. . .
if(mail("[email protected]", "subject", "message", $headers)) {
echo "TRUE";
}else {
echo "FALSE";
}
. . . et il s'avère être de retour faux. Je suppose que cela signifie que c'est une erreur dans mon code, alors?
EDIT:
Apparemment, je n'étais pas clair quand je dit que j'ai fait des recherches avant de poster cette question. J'ai essayé tout ce qui a été donné comme une réponse à la question que le mien était fermé comme un «double» de, d'où la question de toute façon.
Vous ne vérifiez pas la valeur de retour de la fonction 'mail()'. C'est le moins que tu devrais. Chaque fonction dans le manuel de PHP a les valeurs de retour documentées, en apprendre davantage sur la valeur de retour et le gérer pour faire le plus de petites choses - http://php.net/mail - Editer votre question et expliquer quelle valeur de retour vous attendiez et quelle réponse valeur que vous avez. Si le retour du courrier est vrai et que vous ne recevez pas l'email, c'est hors de portée de PHP. – hakre
J'ai vérifié la valeur de retour. C'est faux, et je ne sais pas quoi faire à ce sujet. –
Cela signifie simplement que l'envoi de l'e-mail a échoué (directement). Faites en sorte que votre application s'en charge, c'est une valeur de retour valide (cela peut arriver). Le reste est le dépannage, mais d'abord faire fonctionner votre code avec le cas d'erreur. Par exemple. afficher un message indiquant que l'envoi de l'e-mail a échoué. – hakre