Jump to content

Recommended Posts

Dear gurus. Last for days i searched whole net (even here), but could not found correct answer.

i have a problem what i want to send HTML mail with embed an image (possibly  multiple). But my code generates plain text mail.

Could you guys give me an idea or correct my mistakes where and what did i wrong?

 

Here is my code:

<?php
require_once('jcode.php');

$to = "myself@hotmail.com";

$subject = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("...Japanese TEXT goes here...","JIS","SHIFT_JIS"))."?=";

$sep = sha1(date('r', time()));

$header = "Content-Type: multipart/mixed; boundary=\"PHP-mixed-{' .$sep. '}\"";

$file =  chunk_split(base64_encode(file_get_contents('TEMP_Folder/abcd.gif')));

 $header .= "To: You <myself@hotmail.com>\r\n";
 $header .= "From: Me <info@example.com>\r\n";

 $body = '
 	--PHP-related-{$sep}
	Content-Type: multipart/related; boundary="PHP-alt-{' .$sep. '}"

		--PHP-mixed-{' .$sep. '}
		Content-Type: multipart/alternative; boundary="PHP-alt-{' .$sep. '}"

			 --PHP-alt-{' .$sep. '}
			 Content-Type: text/plain
			 This is plain text

			 --PHP-alt-{' .$sep. '}
			 Content-Type: text/html
			 <html><head>
			 <title>Test HTML Mail</title>
			 </head>
			 <body>
			 <font color="red">This should be HTML but it doesnt work damn!!!</font> 
			 <img src="cid:PHP-CID-{' .$sep. '}" />
			 </body></html>
	 --PHP-related-{' .$sep. '}
	 Content-Type: image/gif
	 Content-Transfer-Encoding: base64
	 Content-ID: <PHP-CID-{' .$sep. '}>
	 {' .$file. '}';

 mail($to, $subject, $body, $header);
?>

Link to comment
https://forums.phpfreaks.com/topic/202801-html-mail-sent-plain-text/
Share on other sites

And this is what i get as mail:

 

From: Me <info@example.com>
Return-Path: anonymous@ns.somehost.com
X-OriginalArrivalTime: 25 May 2010 05:52:24.0862 (UTC) FILETIME=[733BE3E0:01CAFBCE]


 	--PHP-related-{ce09625e878a0667ce95c0d37cb0cfe8442188d4} 
	Content-Type: multipart/related; boundary="PHP-alt-{ce09625e878a0667ce95c0d37cb0cfe8442188d4}" 

		--PHP-mixed-{ce09625e878a0667ce95c0d37cb0cfe8442188d4} 
		Content-Type: multipart/alternative; boundary="PHP-alt-{ce09625e878a0667ce95c0d37cb0cfe8442188d4}" 

			 --PHP-alt-{ce09625e878a0667ce95c0d37cb0cfe8442188d4} 
			 Content-Type: text/plain 
			 This is plain text
			  
			 --PHP-alt-{ce09625e878a0667ce95c0d37cb0cfe8442188d4} 
			 Content-Type: text/html 
			 <html><head> 
			 <title>Test HTML Mail</title> 
			 </head> 
			 <body> 
			 <font color="red">This should be HTML but it doesnt work damn!!!</font>  
			 <img src="cid:PHP-CID-{ce09625e878a0667ce95c0d37cb0cfe8442188d4}" /> 
			 </body></html> 
	 --PHP-related-{ce09625e878a0667ce95c0d37cb0cfe8442188d4} 
	 Content-Type: image/gif 
	 Content-Transfer-Encoding: base64 
	 Content-ID: <PHP-CID-{ce09625e878a0667ce95c0d37cb0cfe8442188d4}> 
	 {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 
1D/dyG35u6wCr4rLzW5tDy/ 
}

try this

<?php
$to = "tomail@hotmail.com";
$from = "frommail@hotmail.com";

   $subject = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("...Japanese TEXT goes here...","JIS","SHIFT_JIS"))."?=";

// Setting a timezone, mail() uses this.
date_default_timezone_set('America/New_York');
  // recipients

  // subject
$subject = "Test for Embedded Image & Attachement";

// Create a boundary string.  It needs to be unique
$sep = sha1(date('r', time()));

// Add in our content boundary, and mime type specification:
$headers ="Content-Type: multipart/mixed;boundary=\"PHP-mixed-{$sep}\"\r\n";

// additional headers
$headers .= "To: You <$to>\r\n";
$headers .= "From: Me <$from>\r\n";

$file = chunk_split(base64_encode(file_get_contents('TEMP_Folder\abcd.gif')));

// Your message here:
$body =<<<EOBODY
--PHP-mixed-{$sep}
Content-Type: multipart/alternative;
     boundary="PHP-alt-{$sep}"

--PHP-alt-{$sep}
Content-Type: text/html

<html>
<head>
<title>Test HTML Mail</title>
</head>
<body>
<font color="red">This should be HTML but it doesnt work damn!!!</font>
<img src="cid:PHP-CID-{$sep}" />
</body>
</html>

--PHP-alt-{$sep}
Content-Type: text/plain

plain text


--PHP-alt-{$sep}
Content-Type: multipart/related; boundary="PHP-related-{$sep}"

--PHP-related-{$sep}
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-ID: <PHP-CID-{$sep}>

{$file}
--PHP-related-{$sep}--

--PHP-alt-{$sep}--

--PHP-mixed-{$sep}--
EOBODY;

mail($to, $subject, $body, $headers);
?>

MadTechie Thank you for your time.

here is result:

Content-Type: multipart/alternative; 
        boundary="PHP-alt-d8f288edd09aa51e82d731247594d0389304687f" 

--PHP-alt-d8f288edd09aa51e82d731247594d0389304687f 
Content-Type: text/html 

<html> 
<head> 
<title>Test HTML Mail</title> 
</head> 
<body> 
<font color="red">This should be HTML but it doesnt work damn!!!</font> 
<img src="cid:PHP-CID-d8f288edd09aa51e82d731247594d0389304687f" /> 
</body> 
</html> 

--PHP-alt-d8f288edd09aa51e82d731247594d0389304687f 
Content-Type: text/plain 

plain text 
--PHP-alt-d8f288edd09aa51e82d731247594d0389304687f 
Content-Type: multipart/related; boundary="PHP-related-d8f288edd09aa51e82d731247594d0389304687f" 

--PHP-related-d8f288edd09aa51e82d731247594d0389304687f 
Content-Type: image/gif 
Content-Transfer-Encoding: base64 
Content-ID: <PHP-CID-d8f288edd09aa51e82d731247594d0389304687f>  
--PHP-related-d8f288edd09aa51e82d731247594d0389304687f-- 

--PHP-alt-d8f288edd09aa51e82d731247594d0389304687f--

change

--PHP-mixed-{$sep}
Content-Type: multipart/alternative;
        boundary="PHP-alt-{$sep}"

to

--PHP-mixed-{$sep}
Content-Type: multipart/alternative;boundary="PHP-alt-{$sep}"

 

EDIT: in fact try the attached

 

[attachment deleted by admin]

No, if the email is being sent then it should be okay.. it down to how the client parses the email,

Note how you seam to have extra lines,

 

The script I posted was tested on my windows machine,

I guess you could try changing the /r/n's to PHP_EOL

 

ie

$headers ="Content-Type: multipart/mixed;boundary=\"PHP-mixed-{$sep}\"\r\n";

// additional headers
$headers .= "To: You <$to>\r\n";
$headers .= "From: Me <$from>\r\n";

]

 

to

$headers ="Content-Type: multipart/mixed;boundary=\"PHP-mixed-{$sep}\"".PHP_EOL;

// additional headers
$headers .= "To: You <$to>".PHP_EOL;
$headers .= "From: Me <$from>".PHP_EOL;

 

I really appreciate for your interest.

Unfortunately, no thing was changed. It is still plain text

Wow,

Strange how within seconds of registering a member would post here and then signs out then the thread starter logs back in to reply!

I am not suggesting its the same member or anything (being in the same country doesn't prove anything) ::)

Dear MadTechie

Thank you for your advice, my mail is now working. Will you have heart attack if i say i have a tiny problem which is my ISP's mail account works perfect but site's mail address fail and turn into plain text.

ie:

sniperscope@my-isp.ne.jp <--- OKAY !!! HTML mail

sniperscope@hosting.co.jp <-- This mail turn into plain text. same code, same server, same file but turn into plain text just changing mail address.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.