2009-05-17 6 views
0
$to = "[email protected]"; 
$subject = "Auction Registration Confirmation"; 
$from = "From: [email protected]"; 
$body = "Test Message"; 
if (mail($to, $subject, $body, $from)) { 
    echo("<b>Message sent</b>"); 
    header("Location: http://www.mydomain.com/thankyou.html"); 
} else { 
    echo("<b>Message failed</b>"); 
} 

Maintenant, le problème est que lorsqu'un email est envoyé, l'adresse d'expéditeur n'est pas ce dont j'ai besoin, mais le nom de connexion du serveur.La fonction PHP mail() n'utilise pas l'adresse "from"

Toutes les idées pour remplacer le nom de connexion du serveur par l'ID de courriel.

Répondre

0

Il n'y a pas de problème avec votre code PHP - j'ai un code très similaire qui fait le même travail et ça marche très bien.

Il est possible qu'il y ait quelque chose d'incorrect dans la configuration de votre messagerie?

+0

En supposant que le serveur, où toute l'administration est effectuée, le nom de connexion est "admin". Le code est correct, mais le problème est que lorsque l'e-mail est envoyé, l'adresse de l'expéditeur sera "admin" et non "[email protected]" –

+0

Oui, je comprends la question. 8-) Quand je dis "mon code similaire fonctionne très bien", je veux dire que je passe une ligne "From:" à la commande PHP mail() comme vous le faites, et les emails arrivent avec l'en-tête From correct . – RichieHindle

+0

Pourriez-vous me fournir une solution –

0

La fonction de messagerie PHP repose sur le MTA exécuté sur votre serveur. Je parie que votre MTA est configuré pour forcer le $ de la variable à votre nom de connexion.

+0

quelle est la solution? –

+0

@pete la solution consiste à utiliser un MTA différent, ou modifier vos paramètres MTA. – Unknown

+0

@unknown, droit Je sais que j'ai éditer les paramètres MTA, mais quoi et comment? –

0

Avez-vous essayé cela? ça marche pour moi bien

<?php 
$to = "[email protected]"; 
$subject = "subject"; 
$message = "message"; 
$from = "[email protected]"; 
$headers = "From: $from"; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
?> 
0

vous pouvez essayer

mail($to, $subject, $body, $from, "-f $from"); 

cela fonctionne dans certaines configurations, vraiment en fonction de la configuration du serveur. Sinon, modifiez vos paramètres MTA comme recommandé ci-dessus, ou ignorez mail() et utilisez une classe comme PHPmailer qui se connecte directement au serveur SMTP.

Questions connexes