I'm using the php script found here:
http://css-tricks.com/2866-sending-nice-html-email-with-php/
I've uploaded开发者_运维知识库 it to my server - and it refuses to send emails correctly!
This is what I receive in Gmail: (displays as raw html)
Content-Type: text/html; charset=ISO-8859-1
<html>
<body>
<img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />
<table rules="all" style="border-color: #666;" cellpadding="10">
<tr style='background: #eee;'>
<td><strong>Name:</strong> </td>
<td>sd</td>
</tr>
<tr>
<td><strong>Email:</strong> </td>
<td>myrealemail@gmail.com.au</td>
</tr>
<tr>
<td><strong>Type of Change:</strong> </td>
<td>Change to Existing Content</td>
</tr>
<tr>
<td><strong>Urgency:</strong> </td>
<td>Super Wicked Urgent</td>
</tr>
<tr>
<td><strong>URL To Change (main):</strong> </td>
<td>http://css-tricks.com/2866-sending-nice-html-email-with-php/</td>
</tr>
<tr>
<td><strong>CURRENT Content:</strong></td>
<td>fdasgdsfg</td>
</tr>
<tr>
<td><strong>NEW Content:</strong> </td>
<td>sdfgsdgf</td>
</tr>
</table>
</body>
</html>
Is there any server settings that I may have to change???
I've also used some wordpress plugins on this server that seem to have the same issue.
Any ideas would be great.
UPDATE:
- Code has only been edited with my real email in all places that required it. (removed here for security) - full code visible here: http://css-tricks.com/2866-sending-nice-html-email-with-php/
** UPDATE **
Here's what i get in Gmail when i click "Show Original"
Delivered-To: [removed-intentionally]@gmail.com
Received: by 10.204.157.136 with SMTP id b8cs43947bkx;
Sun, 14 Aug 2011 22:29:40 -0700 (PDT)
Received: from mr.google.com ([10.236.77.232])
by 10.236.77.232 with SMTP id d68mr14702149yhe.74.1313386180151 (num_hops = 1);
Sun, 14 Aug 2011 22:29:40 -0700 (PDT)
Received: by 10.236.77.232 with SMTP id d68mr11051146yhe.74.1313386179570;
Sun, 14 Aug 2011 22:29:39 -0700 (PDT)
Return-Path: <anonymous@ub002lps00.cbr.the-server.net.au>
Received: from ironport1-mx.cbr1.mail-filtering.com.au (ironport1-mx.cbr1.mail-filtering.com.au [203.88.115.241])
by mx.google.com with ESMTP id g70si16130380yhe.152.2011.08.14.22.29.38;
Sun, 14 Aug 2011 22:29:39 -0700 (PDT)
Received-SPF: neutral (google.com: 203.88.115.241 is neither permitted nor denied by best guess record for domain of anonymous@ub002lps00.cbr.the-server.net.au) client-ip=203.88.115.241;
Authentication-Results: mx.google.com; spf=neutral (google.com: 203.88.115.241 is neither permitted nor denied by best guess record for domain of anonymous@ub002lps00.cbr.the-server.net.au) smtp.mail=anonymous@ub002lps00.cbr.the-server.net.au
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqoHAHOuSE5xFATR/2dsb2JhbABBmHOPCHeEEYd0lCyfAIZHBKQJ
X-IronPort-AV: E=Sophos;i="4.67,372,1309701600";
d="scan'208,217";a="465774510"
Received: from ub002lps00.cbr.the-server.net.au ([113.20.4.209])
by ironport1-mta.cbr1.mail-filtering.com.au with ESMTP; 15 Aug 2011 15:29:03 +1000
Received: (qmail 14705 invoked by uid 10317); 15 Aug 2011 07:29:02 +0200
Date: 15 Aug 2011 07:29:02 +0200
Message-ID: <20110815052902.14702.qmail@ub002lps00.cbr.the-server.net.au>
To: [removed-intentionally]@gmail.com
Subject: Website Change Reqest
From: [removed-intentionally]@gmail.com
Reply-To: [removed-intentionally]@gmail.com
MIME-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
<html><body><img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" /><table rules="all" style="border-color: #666;" cellpadding="10"><tr style='background: #eee;'><td><strong>Name:</strong> </td><td>sd</td></tr><tr><td><strong>Email:</strong> </td><td>[removed-intentionally]@gmail.com</td></tr><tr><td><strong>Type of Change:</strong> </td><td>Change to Existing Content</td></tr><tr><td><strong>Urgency:</strong> </td><td>Super Wicked Urgent</td></tr><tr><td><strong>URL To Change (main):</strong> </td><td>http://css-tricks.com/2866-sending-nice-html-email-with-php/</td></tr><tr><td><strong>CURRENT Content:</strong> </td><td>fdasgdsfg</td></tr><tr><td><strong>NEW Content:</strong> </td><td>sdfgsdgf</td></tr></table></body></html>
Had the same problem, where sending following header produced a HTML-Email on one server but didn't work on another server
$headers = 'From: xxx@xxx.org\r\n' .
'MIME-Version: 1.0' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
"X-Mailer: PHP";
It turned out, that the \r\n
was a duplicate linebreak for the server. So just using \n as a line break worked for me.
$headers = 'From: xxx@xxx.org\n' .
'MIME-Version: 1.0' . "\n" .
'Content-type: text/html; charset=iso-8859-1' . "\n" .
"X-Mailer: PHP";
There is a good example on the PHP manual site (here) that shows how to do this. Try copy and paste example 4.
It looks like you are not sending the string to identify the content type through in the headers properly. Maybe you should do a "show original" in Gmail and post the headers here as well if you can't get it right from the manual.
It looks like the blank line after MIME-Version
indicates that the header is over, so it is outputting the Content-Type
line as regular text, and the html after it, instead of reading that line as part of the header to know to convert the rest to HTML.
MIME-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
<html><body>
Try getting whatever is generating your headers to remove the blank line between MIME-Version
and Content-Type
. (For instance, do you have an extra \r\n
on that line? What does your code look like where these lines are being generated?) Also maybe add a second blank line between Content-Type
and <html>
.
Try this..
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $sender . ' <' . $sender .'>' . " \r\n" .
'Reply-To: '. $sender . "\r\n" .
'X-Mailer: PHP/' . phpversion();
Header problem was solved in php mail() function.
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $senderEmail . ' <' . $senderEmail .'>' . "
\r\n" .
'Reply-To: '. $senderEmail . "\r\n" .
'X-Mailer: PHP/' . phpversion();
include this in your mail header
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Try using charset=UTF-8 instead of ISO-8859-1...
精彩评论