Jeroen Belleman, 2022-08-31 13:56:
> 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.
Why an attachement? Why not just adding the appropriate MIME headers
about the encoding and sending the text as UTF-8 or ISO-8859-1 or to be
safe using quoted-printable for the transport?
Also see:
<
https://www.php.net/manual/en/function.quoted-printable-encode.php>
> 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.
The first release of PHP 5.4 is more than 10(!) years old that version
is *way* outdated!
You should not use that version at all. Before doing any problem
analysis you should first upgrade your environment. Besides possible
security problems also bugs may be present which got fixed in newer version.
Please update to at least PHP 7.4 or 8.0 and make sure your code works
with that version (there are some breaking changes in PHP 7/8 compared
to 5):
<
https://www.php.net/supported-versions.php>
> Any ideas as to how to prevent my French text from getting hidden away
> in an attachment?
As suggested above - do not use attachements but just add the text with
an appropriate encoding. There is no need to use attachments just
because you use 8-bit characters.
You can also use PHPMailer to make this process easier (which of course
also requires a decent PHP version):
<
https://github.com/PHPMailer/PHPMailer>
--
Arno Welzel
https://arnowelzel.de