Re: PHP mail() turns text with special characters into attachments

Arne Vajhøj <[email protected]>
Newsgroups comp.lang.php
Organization SunSITE.dk - Supporting Open source
Message-ID <[email protected]>
On 8/31/2022 7:56 AM, Jeroen Belleman wrote:
> I use the PHP mail() function to send emails to a special interest group.
> Some of these mails are in English, no problems, and some of them are in
> French. For the latter, the message body text gets turned into an
> attachment, and the mail body remains empty. Apparently, it's the
> presence of accented characters that triggers this.
> 
> The problem appeared when we recently moved the site to a different host.
> Both the old and the new host are Linux machines, running PHP 5.4.16 and
> Apache 20120211.
> 
> Any ideas as to how to prevent my French text from getting hidden away
> in an attachment?

Non-ASCII should be encoded. Both in headers and body.

function header_encode($str) {
     return '=?ISO-8859-1?Q?' . qp_encode($str) . '?=';
}
function body_encode($str) {
     return qp_encode($str, true);
}
...
$headers = ... .
            "Content-Type: text/plain; charset=ISO-8859-1\r\n" .
            ... .
            "Content-Transfer-Encoding: quoted-printable";

or something similar.

Arne
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.