problème avec php mail 'De' en-tête
Je suis en train de construire un site web qui envoie et e-mail à un utilisateur lors de son inscription.
Mon code (l'essentiel):
<?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.";
?>
le problème est que lorsque le courrier est livré, l'en-tête reste [email protected]
, tandis que réponse est changé à la valeur spécifiée.
box123.bluehost.com
est le nom d'hôte du serveur sur lequel est hébergé le site web.
Donc ce que je fais mal? Que puis-je faire pour obtenir l'adresse "De" la même que l'adresse de réponse?
Est-il quelque chose que je fais mal, ou est l'hôte de web de jeu déloyal?
- J'avais aussi eu ce problème et a posté une réponse utile pour vous!
Vous devez vous connecter pour publier un commentaire.
Edit: je viens de remarquer que vous essayez d'utiliser une adresse gmail comme valeur. Ce n'est pas d'aller travailler, et le fournisseur a droit à l'écraser. Si vous souhaitez rediriger les réponses à vos messages sortants, utilisez
reply-to
.Une solution de contournement pour les adresses valides qui travaille avec de nombreux fournisseurs de services internet:
essayez d'ajouter un cinquième paramètre à votre
mail()
commande:Il s'avère que l'affiche originale du serveur (blueHost) a une FAQ concernant cette question.
L'Article 206.
C'est parce que nos serveurs nécessitent que vous (ou votre script) afin d'utiliser correctement formaté, valable à Partir de: domaine de l'e-mail de l'en-tête. Si le champ n'est pas correctement mis en forme, vide ou l'adresse e-mail n'existe pas dans le cPanel, l'adresse De: sera changé à
username@box###.bluehost.com
.Vous devez modifier le script que vous utilisez pour utiliser correctement un valide
From: header.
Exemples d'en-têtes qui devrait serait:
Exemples d'en-têtes qui ne fonctionnera PAS:
Nos serveurs ne seront pas accepter le nom de l'adresse e-mail et l'adresse e-mail afin d'être le même. Il ne sera pas accepter un double de la déclaration de l'adresse de courriel.
Pour des scripts tels que Joomla et WordPress, vous devrez suivre leur documentation pour la mise en forme des champs correctement. WordPress exigera le Courrier à Partir de plugin.
J'ai eu le même Problème, j'ai vérifié le php.net site. Et trouvé le bon format.
C'est mon code mis à jour.
La \r\n devrait être dans guillemets doubles(") lui-même, le des guillemets simples(') ne fonctionnera pas.
$fromName
devrait également être entourés de guillemets doubles. Si la variable contient certains caractères (entre guillemets simples ou doubles par exemple, "John O'Malley", période, par exemple "Suzy Q.", etc), il pourrait être nulle sans les guillemets. La ligne correcte serait$headers .= 'From: "' . $fromName . '" <' . $fromEmail . '>' . "\r\n" .
Afin d'éviter le phishing, certains serveurs de messagerie empêcher la à Partir de la réécriture.
Je me rends compte que c'est un vieux thread, mais j'ai eu le même problème depuis que j'ai déménagé à bluehost hier. Il peut ne pas avoir été la réponse sélectionnée mais je soutien le bluehost l'article 206 de la réponse.
J'ai créé une adresse email valide dans le panneau de contrôle et l'a utilisé comme mon adresse et il a travaillé.
J'ai résolu ce problème par l'ajout de comptes de messagerie dans Cpanel et également l'ajout de ce même e-mail à l'en-tête de champ comme ceci
L'hébergeur n'est pas vraiment de jeu déloyal. Il n'est pas strictement selon les règles, mais en comparaison avec certains de certains de les étonnantes inventions destinées à empêcher le spam, ce n'est pas un particulièrement mauvais.
Si vraiment vous ne voulez envoyer le courrier à partir de '@gmail.com " pourquoi ne pas simplement utiliser le SMTP de gmail service? Si vous ne pouvez pas configurer le serveur où PHP est en cours d'exécution, puis il ya beaucoup d'e-mail wrapper outils qui vous permettent de spécifier une coutume SMTP relais phpmailer vient à l'esprit.
C.
les en-têtes n'avaient pas de travail pour moi sur mon hébergement mutualisé, la raison a été j'ai été en utilisant mon adresse de messagerie hotmail dans l'en-tête.
j'ai créé un e-mail sur mon cpanel et j'ai mis ce même e-mail dans l'en-tête ouais, il a travaillé comme un charme!