2010-07-28 7 views
1

J'ai configuré plusieurs en-têtes dans la fonction mail(), le nom de l'expéditeur et d'autres champs apparaissent comme définis. Mais, dans le champ gmail mailed-by, je vois le nom d'hôte de mon serveur, même si j'ai défini l'en-tête Mailed-By pour être différent ... Y a-t-il un moyen de changer ceci, ou est-ce que je spécifie le mauvais en-tête? le changement?Modifier l'en-tête mailed-by dans PHP mail

têtes actuelles:

 
From: [email protected] 
Mailed-By: Example.com 
X-Mailer: Example/1.0 

Répondre

7

Si vous publiez les en-têtes que vous envoyez, il sera plus facile de diagnostiquer le problème. Mais l'en-tête devrait être "X-Mailer" pour définir le champ de l'application mailed-by, autant que je sache. Si cela ne fonctionne pas, publiez vos en-têtes actuels et nous pourrons vous aider plus loin/mieux.

EDIT:

Faire quelques recherches, il semble que le 5ème paramètre avec le drapeau "-f" serait la meilleure façon de le faire:

mail($to, $message, $body, $headers, '[email protected]');

est une possibilité. C'est généralement une adresse e-mail, donc vous devriez voir quelles valeurs il accepte, etc. J'ai trouvé cette information à partir du Joyent Discussion Board.

Mais en lisant que ce n'est peut-être pas ce que vous voulez.

-fnom Définit le nom des utilisateurs « from'' person (i.e., the sender of the mail). -f can only be used by confiance » (normalement racine, démon et réseau) ou si la personne que vous essayez de devenir est le même que la personne que vous êtes.

Depuis le sendmail Man page. Je verrai si je ne peux pas gratter autre chose.

+0

têtes affichés ... i avaient attribué x-mailer comme la première chose, mais il a ajouté l'envoyé par la ligne au-dessus pour essayer redéfinissant la gmail postée par. Ne pas aller. :-( – ina

+1

Mis à jour avec une option pour tester, le 5ème paramètre de sendmail, "-f" –

+0

le 5ème paramètre '-f' a fonctionné pour moi, gmail n'affiche plus les éléments 'envoyé par' ou 'via' – mikew

2

Il semble que l'en-tête mailed by a été ajouté par votre agent de transfert de courrier, ou gmail, après avoir quitté PHP. Il semble que ce soit une mesure de sécurité, de sorte que les rapports d'abus peuvent être suivis.

0

Je ne sais pas si cela a été résolu car il est vieux mais j'ai eu le même problème sur une page de contact de mon site Web. Nous voulions que les membres du club puissent utiliser un formulaire pour contacter les agents. Mais je voulais que ça ressemble à l'adresse e-mail que l'utilisateur a saisie pour que l'agent puisse répondre directement. J'ai trouvé ce code et l'ai modifié pour mon site.

$headers = "From: <$email> \n"; 
    $headers .= "X-Sender: <$from>\n"; 
    $headers .= "X-Mailer: PHP\n"; 

$ email est l'adresse que l'utilisateur a saisie. Je ne peux pas dire que je comprends tout mais cela a résolu mon problème.