2010-06-18 8 views
44

J'utilise ce qui suit pour envoyer un e-mail:nouvelle ligne ne fonctionne pas dans le courrier PHP

<php .... 
$message = 'Hi '.$fname.', \r\n Your entries for the week of ' 
    .$weekof.' have been reviewed. \r\n Please login and View Weekly reports to see the report and comments. \r\n Thanks, \r\n'.$myname; 

mail($to, $subject, $message, $from); 
?> 

Lorsque le message est reçu, il ne démarre pas une nouvelle ligne à la « \ r \ n », mais seulement des impressions eux dans le cadre du message. Je l'ai seulement essayé dans Thunderbird 3, pas tous les autres clients.

Répondre

96

Essayez de changer votre ' à " - php interprète une chaîne entre guillemets simples comme littéraux, alors qu'avec des guillemets ("), il étendra le \r\n à ce que vous voulez.

Pour plus d'informations: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single

+3

Merci. Cela a fait l'affaire. Je ne savais pas qu'il y avait une différence entre les guillemets simples et doubles. – ChuckO

+1

Pouvez-vous s'il vous plaît donner un exemple de code? –

1
<?php .... 
$message = "Hi ".$fname.", \r\n Your entries for the week of " 
    .$weekof." have been reviewed. \r\n Please login and View Weekly reports to see the report and comments. \r\n Thanks, \r\n".$myname; 

mail($to, $subject, $message, $from); 
?> 
+0

Comment ce code résout-il le problème du demandeur? – APerson

+0

Expliquez votre code –

2

Pas une réponse à la question, mais il peut être utile à quelqu'un.

Envoyez un message HTML et au lieu de \ n, utilisez <BR>.

Et d'utiliser <PRE></PRE> ou CSS pour le texte préformaté, traduisant ainsi \ n à de nouvelles lignes réelles.

$headerFields = array(
    "From: [email protected]", 
    "MIME-Version: 1.0", 
    "Content-Type: text/html;charset=utf-8" 
    ); 
mail($to, $subj, $msg, implode("\r\n", $headerFields)); 
Questions connexes