I am getting some trouble with Apple Mail app and my php email library. I am currently using quoted-printable encoding to send email from my email library and Apple mail application is displaying the encoded characters instead to decode it. I don't know why and this is my question... Why it happens ? And how to fix it ?
I investigated to find the problem, i compared my emails with the gmail ones (that are showing well), i fixed every difference and the problem is still here.
My email's body (Orpheus library):
--ORPHEUS_69d939908a43b4cf97b9485b9316c312
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Ceci est un email test.
We try some sp=C3=A9cial ch=C3=A0ract=E2=82=ACr ~ !! $ =C2=A3 =C2=B5
--ORPHEUS_69d939908a43b4cf97b9485b9316c312
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir="ltr">Ceci est un email <a href=3D"http://google.com/">test</a>.<br />
We try some sp=C3=A9cial ch=C3=A0ract=E2=82=ACr ~ !! $ =C2=A3 =C2=B5</div>
--ORPHEUS_69d939908a43b4cf97b9485b9316c312--
The gmail one:
--047d7b3a83caafa6b2050809d6f9
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Ceci est un email test <http://google.com/>.
We try some sp=C3=A9cial ch=C3=A0ract=E2=82=ACr ~ !! $ =C2=A3 =C2=B5
--047d7b3a83caafa6b2050809d6f9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Ceci est un email <a href=3D"http://google.com/">tes=
t</a>.</div><div>We try some sp=C3=A9cial ch=C3=A0ract=E2=82=ACr ~ !! $ =C2=
=A3 =C2=B5</div></div>
--047d7b3a83caafa6b2050809d6f9--
On Mail app, mine shows:
We try some sp=C3=A9cial ch=C3=A0ract=E2=82=ACr
The google one shows:
We try some spécial chàract€r
There is no more real encoding differences... so i don't understand. We are both using UTF-8 and quoted-printable.
I did not see that " dir="ltr" " was not encoded (the div was wrapped after) but as the equal is not encoded, Mail got an error and instead of just skipping error, it considers the leaving text as non-encoded.