php mail ohne Umlaute auf Android

6 views
Skip to first unread message

Jan Novak

unread,
Mar 4, 2021, 5:00:48 AMMar 4
to
Hallo,

mein php script sendet u.a. Mails mit PHPMailer.
Ich lasse den zu schreibenden Text mit

$ktext=iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text);

Konvertieren. Seit dieser Konvertierung werden die Umlaute in Windows
und Linux korrekt angezeigt, aber auf Android fehlen die Umlaute
komplett (also keine anderes Zeichen).



Jan

Rudolf Harras

unread,
Mar 15, 2021, 10:37:44 AMMar 15
to
Wie schaut denn der Header der erzeugten Mail aus?

Arno Welzel

unread,
Mar 15, 2021, 11:00:24 AMMar 15
to
Jan Novak:
Wie sehen die Header der so versendeten Mails aus? Ist da der
Content-Type korrekt angegeben?


--
Arno Welzel
https://arnowelzel.de

Jan Novak

unread,
Mar 16, 2021, 3:27:57 AMMar 16
to
Am 15.03.21 um 16:00 schrieb Arno Welzel:
Hmmm... ich muss mir die Mail mal weiterleiten um das zu sehen.
Allerdings:
Die versendete Mail ging an 2 Empfänger - beide mit einem Android'en.
Das eine ein Samsung S10 - da kam sie ohn Umlaute an, das andere ein
Huawei - und - dort kam sie korrekt an. Danns cheint das ja wohl nicht
ein Problem des php mailers zu sein, oder?


Jan

Arno Welzel

unread,
Mar 16, 2021, 10:15:22 AMMar 16
to
Jan Novak:

> Am 15.03.21 um 16:00 schrieb Arno Welzel:
[...]
>> Wie sehen die Header der so versendeten Mails aus? Ist da der
>> Content-Type korrekt angegeben?
>
>
> Hmmm... ich muss mir die Mail mal weiterleiten um das zu sehen.

Ja, tu das.

> Allerdings:
> Die versendete Mail ging an 2 Empfänger - beide mit einem Android'en.
> Das eine ein Samsung S10 - da kam sie ohn Umlaute an, das andere ein
> Huawei - und - dort kam sie korrekt an. Danns cheint das ja wohl nicht
> ein Problem des php mailers zu sein, oder?

Nein, sie kommt bei beiden Empfängern identisch an - nur ist einer der
beiden Clients halt besser im Raten, wie er die Umlaute anzeigen soll,
wenn er keine oder eine falsche Angabe dazu im Header hat.

Ohne die Header kann man das aber nicht beurteilen - daher musst Du
prüfen, welche Header gesetzt werden, anders kann der Fehler nicht
eingegrenzt werden.

Jan Novak

unread,
Mar 16, 2021, 11:00:08 AMMar 16
to
Am 16.03.21 um 15:15 schrieb Arno Welzel:
>> Allerdings:
>> Die versendete Mail ging an 2 Empfänger - beide mit einem Android'en.
>> Das eine ein Samsung S10 - da kam sie ohn Umlaute an, das andere ein
>> Huawei - und - dort kam sie korrekt an. Danns cheint das ja wohl nicht
>> ein Problem des php mailers zu sein, oder?
>
> Nein, sie kommt bei beiden Empfängern identisch an - nur ist einer der
> beiden Clients halt besser im Raten, wie er die Umlaute anzeigen soll,
> wenn er keine oder eine falsche Angabe dazu im Header hat.
>
> Ohne die Header kann man das aber nicht beurteilen - daher musst Du
> prüfen, welche Header gesetzt werden, anders kann der Fehler nicht
> eingegrenzt werden.
>

OK, klare Antwort.
Dann werde ich das prüfen. Leider kommt eine solche mail selten. Aber
wenigstens habe ich einen Anhaltspunkt.


Jan

Karl Pflästerer

unread,
Mar 16, 2021, 11:13:06 AMMar 16
to
Oder. Falls im Header Content-Type nicht oder nicht korrekt angegeben
ist, ist es vielleicht nur Glück, dass es manchmal klappt.

Ich würde die Mail nicht weiterleiten sondern sie irgendwohin schicken,
wo du Zugriff auf die Header hast (zB Linux Account; mbox file direkt
lesen)

Jan Novak

unread,
Mar 17, 2021, 2:41:56 AMMar 17
to
Am 16.03.21 um 15:15 schrieb Arno Welzel:
Hier der Header einer Mail (aus Thunderbird mit STRG U.
In Thunderbird OK, in Android fehlen die Umlaute komplett:
[] == domänen

Return-Path: <web@[].de>
Received: from ucs.[].de (127.0.0.1:34716) by ucs (kopano-dagent) with
LMTP; Tue, 16 Mar 2021 19:56:15 +0100
Received: from web.[].de (fw.[].de [192.168.200.200]) by
ucs.[].de (Postfix) with ESMTP id 733735C33BD for
<info@[].de>; Tue, 16 Mar 2021 19:56:15 +0100
Received: by web.[].de (Postfix, from userid 33) id C11F932C8E; Tue, 16
Mar 2021 19:56:03 +0100
Subject: ...
From: "[]" <info@[].de>
To: =?us-ascii?Q?info=40[]=2Ede?= <info@[].de>
Date: Tue, 16 Mar 2021 18:56:03 +0000
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="=_ZG_static"
Message-Id: <20210316185603.C11F932C8E@web.[].de>

This is a multi-part message in MIME format. Your mail reader does not
understand MIME message format.
--=_ZG_static
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Claus Reibenstein

unread,
Mar 17, 2021, 11:21:13 AMMar 17
to
Jan Novak schrieb am 17.03.2021 um 07:41:

> Content-Type: text/plain; charset=windows-1252
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Warum windows-1252? Im OP hieß es:

$ktext=iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text);

Du sendest also ISO-8859-1, gibst im Mailheader jedoch windows-1252 an.
Das passt irgendwie nicht.

Gruß
Claus

Jan Novak

unread,
Mar 18, 2021, 2:17:38 AMMar 18
to
Am 17.03.21 um 16:21 schrieb Claus Reibenstein:
Korrekt. Die Frage ist nur: Woher kommt der ISO Eintrag?
Der ist nirgends angegeben.
Absender ist eine Linux Maschine, Mailserver ist eine Linux Maschine und
Empfänger sind dann halt die Clients.
Da ist nirgends eine ISO Konvertierung dazwischen.


Jan

Thomas Hochstein

unread,
Mar 18, 2021, 7:00:02 AMMar 18
to
Jan Novak schrieb:

> Am 17.03.21 um 16:21 schrieb Claus Reibenstein:
> > Du sendest also ISO-8859-1, gibst im Mailheader jedoch windows-1252 an.
> > Das passt irgendwie nicht.
>
> Korrekt. Die Frage ist nur: Woher kommt der ISO Eintrag?

Welcher "ISO-Eintrag"? Es gibt ja - im Mailheader - gerade keinen
"ISO-Eintrag". Du sendest ISO-8859-1, gibst aber Windows-1252 an.

Das kann eigentlich nur passieren, wenn PHPMailer ein CharSet
vorgegeben wird, bspw. via.
| $mail -> charSet = ...

> Da ist nirgends eine ISO Konvertierung dazwischen.

Ist
| $ktext=iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text);
keine Konvertierung?

-thh

Arno Welzel

unread,
Mar 18, 2021, 4:15:01 PMMar 18
to
Jan Novak:

[...]
> Hier der Header einer Mail (aus Thunderbird mit STRG U.
> In Thunderbird OK, in Android fehlen die Umlaute komplett:
> [] == domänen

Die wurde exakt so von PHPMailer verschickt?

> Return-Path: <web@[].de>
> Received: from ucs.[].de (127.0.0.1:34716) by ucs (kopano-dagent) with
> LMTP; Tue, 16 Mar 2021 19:56:15 +0100
> Received: from web.[].de (fw.[].de [192.168.200.200]) by
> ucs.[].de (Postfix) with ESMTP id 733735C33BD for
> <info@[].de>; Tue, 16 Mar 2021 19:56:15 +0100
> Received: by web.[].de (Postfix, from userid 33) id C11F932C8E; Tue, 16
> Mar 2021 19:56:03 +0100
> Subject: ...
> From: "[]" <info@[].de>
> To: =?us-ascii?Q?info=40[]=2Ede?= <info@[].de>
> Date: Tue, 16 Mar 2021 18:56:03 +0000
> Mime-Version: 1.0
> Content-Type: multipart/alternative; boundary="=_ZG_static"
> Message-Id: <20210316185603.C11F932C8E@web.[].de>
>
> This is a multi-part message in MIME format. Your mail reader does not
> understand MIME message format.
> --=_ZG_static
> Content-Type: text/plain; charset=windows-1252
> Content-Transfer-Encoding: quoted-printable

Theoretisch ist windows-1252 kompatibel zu ISO-8859-1 was die Umlaute
betrifft. Aber wozu Multipart? Sind da Anhänge dabei? Ist es eine
HTML-Mail, wo der Text als alternativer Part mitgeschickt wird?
PHPMailer kann auch reinen Text schicken. Ebenso gibt es die
Eigenschaften "Encoding" und "CharSet", um den Zeichensatz des Textes
anzugeben und die gewüschte Codierung.

Jan Novak

unread,
Mar 22, 2021, 2:37:02 AMMar 22
to
Am 18.03.21 um 11:47 schrieb Thomas Hochstein:
>> Korrekt. Die Frage ist nur: Woher kommt der ISO Eintrag?
>
> Welcher "ISO-Eintrag"? Es gibt ja - im Mailheader - gerade keinen
> "ISO-Eintrag". Du sendest ISO-8859-1, gibst aber Windows-1252 an.
>
> Das kann eigentlich nur passieren, wenn PHPMailer ein CharSet
> vorgegeben wird, bspw. via.
> | $mail -> charSet = ...
>
>> Da ist nirgends eine ISO Konvertierung dazwischen.
>
> Ist
> | $ktext=iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text);
> keine Konvertierung?

Naja... ja. Aber ohne diese, kommen statt Umlaute nur Schrott raus.

Jan

Jan Novak

unread,
Mar 22, 2021, 2:39:13 AMMar 22
to
Am 18.03.21 um 21:14 schrieb Arno Welzel:
>> This is a multi-part message in MIME format. Your mail reader does not
>> understand MIME message format.
>> --=_ZG_static
>> Content-Type: text/plain; charset=windows-1252
>> Content-Transfer-Encoding: quoted-printable
>
> Theoretisch ist windows-1252 kompatibel zu ISO-8859-1 was die Umlaute
> betrifft. Aber wozu Multipart? Sind da Anhänge dabei? Ist es eine
> HTML-Mail, wo der Text als alternativer Part mitgeschickt wird?
> PHPMailer kann auch reinen Text schicken. Ebenso gibt es die
> Eigenschaften "Encoding" und "CharSet", um den Zeichensatz des Textes
> anzugeben und die gewüschte Codierung.



Ja, es handelt sich um eine HTML formatierte Mail mit PDF Anhang.
Wozu gibt es "Encoding" _und_ "Charset".
Kann ich diesen Eigenschaften UTF-8 zuordnen?


Jan


Arno Welzel

unread,
Mar 22, 2021, 1:59:08 PMMar 22
to
Jan Novak:
Siehe hier:

<https://phpmailer.github.io/PHPMailer/classes/PHPMailer.PHPMailer.PHPMailer.html#property_CharSet>

<https://phpmailer.github.io/PHPMailer/classes/PHPMailer.PHPMailer.PHPMailer.html#property_Encoding>

Du könntest versuchen, Encoding auf "8bit" zu setzen und Charset auf
"UTF-8". Dann musst Du aber auch sicherstellen, dass der entsprechende
Part auch wirklich UTF-8 ist.

Thomas Hochstein

unread,
Mar 22, 2021, 2:15:02 PMMar 22
to
Jan Novak schrieb:

> Wozu gibt es "Encoding" _und_ "Charset".

Nun ja, warum gibt es "From" und "Subject"? - Es sind unterschiedliche
Dinge.

Das Content-Transfer-Encoding kann bspw. "8bit" oder
"quoted-printable" sein. Das Charset kann bspw. "ISO-8859-1" oder
"UTF-8" sein.

> Kann ich diesen Eigenschaften UTF-8 zuordnen?

Als Charset: freilich. Als Enconding: wohl kaum.

-thh
Reply all
Reply to author
Forward
0 new messages