#1  
Old 3rd December 2008, 22:28
KenKnight KenKnight is offline
Senior Member
 
Join Date: Nov 2005
Posts: 137
Thanks: 0
Thanked 3 Times in 2 Posts
Default php html mail problem

Hi all,

I've got the debian etch perfect setup and have run into a problem where trying to send html emails from php are not being processed correctly.

Even simple code such as;
Code:
<?php


//define the receiver of the email
$to = 'someone@nowhere.com';
//define the subject of the email
$subject = 'Test HTML email';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: someone@nowhere.com\r\nReply-To: someone@nowhere.com";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!! 
This is simple text email message. 

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-<?php echo $random_hash; ?>--
<?
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
echo $mail_sent ? "Mail sent" : "Mail failed";


?>
The message received by outlook looks like plain text messages. Regardless of what we try.

Mail server is Postfix if that helps.

Thanks,
Ken
Reply With Quote
Sponsored Links
  #2  
Old 4th December 2008, 19:54
KenKnight KenKnight is offline
Senior Member
 
Join Date: Nov 2005
Posts: 137
Thanks: 0
Thanked 3 Times in 2 Posts
Default

This appears to be a \r\n problem ,however, even trying remove the \r does not fix the problem.

Any suggestions would be greatly appreciated.

Thanks,
ken
Reply With Quote
  #3  
Old 5th December 2008, 01:12
falko falko is offline
Super Moderator
 
Join Date: Apr 2005
Location: Lüneburg, Germany
Posts: 41,701
Thanks: 1,900
Thanked 2,747 Times in 2,578 Posts
Default

Have you tried to save the file with Unix line breaks (\n) instead of Windows line breaks (\r\n)?
__________________
Falko
--
Download the ISPConfig 3 Manual! | Check out the ISPConfig 3 Billing Module!

FB: http://www.facebook.com/howtoforge

nginx-Webhosting: Timme Hosting | Follow me on:
Reply With Quote
  #4  
Old 5th December 2008, 18:21
KenKnight KenKnight is offline
Senior Member
 
Join Date: Nov 2005
Posts: 137
Thanks: 0
Thanked 3 Times in 2 Posts
 
Default

I've run some more tests and I'm not sure which item fixed it, but it is now working. Things done were;

1) used mime part info

2) saved as unix

3) removed \r's from header info.

Thanks,
Ken
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
CentoS doesn't send the emails vaio1 Installation/Configuration 18 5th November 2008 18:51
ISPConfig virtual web pages not working mike_phi Installation/Configuration 8 7th May 2008 17:51
How to add a subdomain? malinens Installation/Configuration 2 11th March 2008 00:16
network issues now it says "401 The web site is blocked by administrator" Check General 3 26th February 2008 15:22
Downgrade php5 to php4.4.2 llizards Installation/Configuration 4 14th March 2006 00:58


All times are GMT +2. The time now is 07:14.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.