Maison >développement back-end >tutoriel php >Pourquoi l'en-tête \'From\' de ma fonction PHP mail() est-il ignoré et comment puis-je y remédier ?
Problème d'en-tête "From" dans PHP Mail
Dans le but d'améliorer les fonctionnalités de l'utilisateur, un site Web a été développé pour envoyer automatiquement des e-mails à l'utilisateur. inscription. Le code PHP utilisé pour cette tâche est détaillé ci-dessous :
<?php $to = "[email protected]"; $subject = "Test mail"; $message = "Hello! \nThis is a simple email message."; $headers = "From: [email protected]"; $headers .= "\r\nReply-To: [email protected]"; $headers .= "\r\nX-Mailer: PHP/".phpversion(); mail($to,$subject,$message,$headers); echo "Mail Sent."; ?>
Lors de l'envoi d'e-mails via ce code, un problème inattendu est survenu. L'en-tête "De" affiché dans les e-mails envoyés est resté "[email protected]", tandis que l'en-tête "Reply-To" reflétait correctement la valeur spécifiée "[email protected]". Le serveur de messagerie utilisé était box123.bluehost.com.
Cause du problème
Après une enquête plus approfondie, il a été déterminé que l'utilisation d'une adresse Gmail comme " La valeur From" était à l'origine du problème. Les fournisseurs d'accès Internet (FAI), y compris Bluehost, limitent généralement l'utilisation d'adresses e-mail externes comme valeur « De » pour empêcher l'usurpation d'e-mail. En conséquence, le FAI a remplacé l'adresse « De » par sa valeur par défaut.
Solution de contournement
Pour résoudre ce problème et rediriger les réponses vers l'adresse prévue, il est Il est recommandé d'utiliser plutôt l'en-tête "Reply-To". De plus, un cinquième paramètre peut être ajouté à la fonction mail() comme indiqué ci-dessous :
mail($to,$subject,$message,$headers,"-f [email protected]");
Ce paramètre spécifie l'option "-f", qui permet le réglage manuel de l'en-tête "From" pour de nombreux FAI .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!