2010-10-31 8 views
0

J'ai un script PHP qui envoie un e-mail. Il ressemble à ceci:Fonction de messagerie PHP ne fonctionne pas

<?php 
// subject 
$subject = "$first_name $last_name has sent you a message on The Red-line"; 

// message 
$message = "<html> 
    <head> 
    <title> 
     The Red-line 
    </title> 
    </head> 
    <body> 
    <p> 
     Hi $war_first, 
    </p> <br /> 

     <p> 
     $first_name $last_name has sent you a message on the Red-line. To view your message, please login to <a href='www.thered-line.com'>the Red-line.</a> 
     </p> <br /> 

     <p> 
     Sincerely, 
     </p> <br /> 

     <p> 
     The Red-line Operator 
     </p> 
    </body> 
    </html>"; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= "From: The Red-line [email protected] \r\n"; 
$headers .= "To: $war_first $last_war <$war_mail>\r\n"; 

// Mail it 
mail($war_mail, $subject, $message, $headers); 
?> 

Quand je testais ceci sur le serveur distant, j'ai utilisé ce script pour envoyer un e-mail à ma boîte de réception à [email protected]yahoo.com. J'ai reçu l'email mais la partie "de" ne fonctionne pas. Yahoo dit que mon email a été envoyé par "[email protected]"

Est-ce que quelqu'un a une idée de pourquoi cela ne fonctionne pas?

Merci

Répondre

3

Pour De tête, placez l'adresse réelle avec < >:

$headers .= "From: The Red-line <[email protected]> \r\n"; 

C'est le correct format à utiliser lorsque vous avez un nom d'affichage et une adresse e-mail. Je suppose que Yahoo interprétait le premier mot "The" comme l'adresse e-mail complète, et fournissait une valeur par défaut (yahoo.com) pour le domaine.

1

Le <> semble être votre problème, il devrait être:

$headers .= "From: The Red-line <[email protected]> \r\n"; 

En second lieu, sous Unix/Linux, vous devez avoir un travail MTA (ex: Sendmail, Postfix, etc.) configuré sur votre serveur , soit pour relayer directement le courrier, soit via un Smart Host. Si vous utilisez Windows, vous devez avoir un serveur SMTP configuré dans php.ini.

+0

Merci beaucoup, l'homme. C'est toujours ces petites erreurs de syntaxe mineures qui m'attrapent de garde lol. –

Questions connexes