Our company has one web site with an online store based on osCommerce. The system sends emails for various reasons, such as password changes, order confirmations, etc., using PHP's mail() function.

We occasionally have customers report that the email they received is either blank (email is plain text format) or gibberish (email is in HTML format). In the latter case it's really just HTML that's being displayed as raw text but of course the customers can't read it. In this case the first opening tag's <, and sometimes a few more characters, has gone missing.

In an attempt to determine whether this was happening only for certain customers or email systems I configured the web site to send a CC of each message to a service account at my end. Those CC'd messages always arrive intact and display correctly in Outlook. For what it's worth, it seems to happen a little more frequently to Hotmail users but is certainly not limited to them.

As the web site is on a shared (Debian) host there's precious little I can do about debugging things from that end, although if I made the right request I feel the hosting company staff would help me, even though they have limited resources to spend on such matters.

Any suggestions on what else I might do to try and determine just why those emails are not being received correctly by some customers, yet a CC copy arrives just fine?

link|improve this question

feedback

2 Answers

Could be that there email client dosent automatically pick up that it is HTML. You could explicitly add the ContentHeaders HTML (cant remember exact spelling) into the headers of the genereated email.

link|improve this answer
I had thought the same initially but this is affecting both desktop clients and webmail. – John Gardeniers Feb 10 '11 at 3:48
feedback

Outlook is very forgiving of formatting errors, and has been very good at introducing them. Try delivering them to a store where you can look at them in raw format. A local mailbox or Maildir store on the server would be ideal.

ContentHeaders may be checked by both desktop clients and webmail clients. Don't assume because it is webmail it supports HTML. Several webmail applications default to text mode due to security issues with HTML.

Ideally you should generate a multi-part MIME with both text and HTML format. This is the most flexible option. Properly done it should display well everywhere.

link|improve this answer
This problem isn't consistent. A customer who normally has no problems may suddenly get one of these screwed up ones, using the exact same client/method to read their email. As for the MIME encoding, that doesn't even factor into a plain text message. – John Gardeniers Feb 10 '11 at 6:33
It the problem is always characters missing from the start of the message text, I would suspect a problem with overrunning a circular buffer. This would likely be an application issue. I would ask the client to forward the message as an attachment and examine the file in text format. p.s. Plain text is one format for a MIME part. I receive many emails consisting of only plain-text and HTML MIME parts. Attachments are not the only reason to use MIME. – BillThor Feb 11 '11 at 1:32
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.