PHP mail(): Header appears in mail body
I have a problem with a mailing application I'm currently developing with php on a linux server. After sending an email to a bunch of different addresses with different clients on it, sometimes these mails can't be read by the receivers. For example the body appears to start with this:
boundary="=_2cac04098开发者_如何学Pythonebf51c342bd57eab2200e38"
Message-ID: <lo5huc.id4ip6qutsch.lforce.de>
Date: Mon, 11 Jul 2011 06:01:24 +0200 (CEST)
--=_2cac04098ebf51c342bd57eab2200e38
I really have no clue what's happening to my mails. Each line in the header is separated by \n
, the boundary entry has a leading \t
. Though the client seems to read a line break which is not there while parsing my header. It also happens in other parts of the header.
Has anyone ever had a similar problem? Please help me!
Andy
UPDATE: I'm pretty sure it's no coding error. I've been coding this mail stuff for years (even wrote my own mail client) and it worked perfectly. Right now we use the RMAIL class which is also from a bigger open source project. I think it's more like a problem with my system configuration... but that's just a guess.
Make sure you seperate every header line correctly, for instance:
<?php
//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 .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
I suggest using PHPMailer, easy to use, takes care of all nesseccery headers, easy attachment sending, multiple recipients etc.
http://phpmailer.worxware.com/index.php?pg=phpmailer
精彩评论