0

I'm using the latest version of PEAR mail_mime module and I'm running into a strange issue. When attaching HTML images to the email, the text portion stops working properly. What I mean by "not work properly" is that if I try to view the message as text in Thunderbird (or view the message in PINE), it doesn't display what I have set as the "text" portion of the email; It tries to parse the HTML information in a text readable fashion. Everything in the HTML portion works as expected.

Here's my slimmed down code:

//Headers
$headers['From'] = "from@address.com";
$headers['To'] = "to@address.com";
$headers['Subject'] = "A MIME Email";

//Text Portion
$text = "This is the text portion.";

//HTML Portion
$html = "<html><body><p><img src='image.png' />This is the HTML portion.</p></body></html>";

//Set up the MIME email
$mime = new Mail_mime(array('eol' => "\r\n"));
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addHTMLImage("/path/to/image.png", "image/png");

//Prepare the message to be sent
$body = $mime->get();
$headers = $mime->headers($headers);

//Send the message via SMTP
$mail_obj =& Mail::factory('smtp', array('host' => 'smtp.server.com', 'port' => 25));
$mail_obj->send("to@address.com", $headers, $body);

If I comment out the addHTMLImage line, the text portion of the email works as expected and I can see the content I've set for a non-HTML view. However, if I uncomment out the line, the text portion fails. Looking at the source of my message, I can see the text part is always there.

Here is the part of the message source that is relevant to this question:

Date: Thu, 26 May 2011 10:39:24 -0500 (CDT)
From: From Address <from@address.com>
Subject: A MIME Email
To: to@address.com
Message-id: <20110526153924.0C12120697@smtp.server.com>
MIME-version: 1.0
Content-type: multipart/alternative;
 boundary="=_e107860f353617028a0059317ce51c1f"
Original-recipient: rfc822;to@address.com

--=_e107860f353617028a0059317ce51c1f
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
 charset=ISO-8859-1

This is the text portion.
--=_e107860f353617028a0059317ce51c1f
Content-Type: multipart/related;
 boundary="=_52fd7475fcf0abd310b6a38cd33f5c46"

--=_52fd7475fcf0abd310b6a38cd33f5c46
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
 charset=ISO-8859-1

<html><body><p><img src='cid:3c0db5d0a50b8752771f64048f527338' />This is th=
e HTML portion.</p></body></html>

--=_52fd7475fcf0abd310b6a38cd33f5c46
Content-Transfer-Encoding: base64
Content-ID: <3c0db5d0a50b8752771f64048f527338>
Content-Type: image/png;
 name=background.png
Content-Disposition: inline;
 filename=background.png

iVBORw0KGgoAAAANSUhEUgAAAAEAABOICAYAAABwnAfKAAAAkUlEQVR42u3WSwrAIAwFwND7X9d1
eoHSb9TSzmYQSV5AXCRaa7lEROySJ+8uFd+8q2l73FEdkJNSRgR07q0uuVncJWBY6I9OWy85bKRB
7xo04TN8/vTO0OriziWFvcMCJqTMCui8rj5fuyMz43i1BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAIB/swItzir5J/ImiQAAAABJRU5ErkJggg==
--=_52fd7475fcf0abd310b6a38cd33f5c46--

--=_e107860f353617028a0059317ce51c1f--

I'm at a loss on how to possibly fix this. Any body run into a similar issue or have any suggestions?

Michael Irigoyen
  • 22,513
  • 17
  • 89
  • 131

1 Answers1

1

it's your mail reader. it hides text mail if HTML mail is enabled. in gmail you can view details or you can check it in a text email only reader

Michael Irigoyen
  • 22,513
  • 17
  • 89
  • 131
David Chan
  • 7,347
  • 1
  • 28
  • 49
  • ... so you discovered that the problem was YOUR MAIL READER... just saying. – David Chan May 28 '11 at 02:43
  • We've discovered it was the mail reader (Thunderbird), but not for the reason you've stated. Thunderbird can be switched into different view modes. Thunderbird hangs up on ABNF strings that don't follow the `Content-Type` capitalization pattern. (For example, `Content-type` causes Thunderbird to fail on advanced MIME emails.) In other mail clients, the alternative text for our MIME emails worked. (P.S. Edited your answer to remove down vote) – Michael Irigoyen May 31 '11 at 14:51