[postfix-users] Umlaute im FROM gehen manchmal nicht

Sascha Reißner via postfix-users postfix-users at de.postfix.org
Do Nov 7 16:48:09 CET 2013


Am Donnerstag, den 07.11.2013, 12:42 +0100 schrieb Thomas via
postfix-users:
> Hallo,
> ich versende über einen Provider Emails.
> Dieser ist bei bestimmten Absender über sender_dependent_relayhost 
> eingetragen.
> Leider musste ich  feststellen das bei bestimmten Absendern Emails nicht 
> versandt werden.
> 
> Im mail.log finde ich für diesee Absender nur das hier: (aber kein login mit 
> password und kein 2XX wie bei den anderen Email Absendern)
> 
> Oct 30 13:13:48 pbxmaster postfix/smtpd[23083]: connect from 
> localhost[127.0.0.1]]
> Oct 30 13:13:48 pbxmaster postfix/smtpd[23083]: disconnect from 
> localhost[127.0.0.1]
> 
> Der Versand findet über eine PHP Klasse statt.
> Bei diesen Sendern finde ich im FROM Umlaute im Namen, aber nicht in der 
> Emailadresse. Andere Sender mit Umlauten im Namen gehen aber. Von daher weiß 
> ich nicht was die Ursache genau sein kann.

Das SMTP-Protocol unterstützte ursprünglich nur 7bit ASCII.
Viele MTA's nehmen bereits 8bit entgegen, aber das ist eine Grauzone.
Speziell in den Headerzeilen solltest du nur 7bit-Zeichen verwenden.

> Wie kann ich das weiter analysieren oder was kann die Ursache sein?

Ursache ist vermutlich die fehlende Codierung.
Sobald in Headerzeilen Zeichen vorkommen, die das 8te Bit brauchen,
sollten diese codiert werden. Entweder 'quoted-printable' oder 'base64'.
In meinem Namen befindet sich zB ein scharfes S, was mein Mailclient
codiert. Die Zeile sieht dann so aus:

From: Sascha =?ISO-8859-1?Q?Rei=DFner?= <reiszner at novaplan.at>

Die Codierung beginnt mit '=?' und endet mit '?='.
In dem String dazwischen befinden sich noch 2 Fragezeichen die diesen in
3 Teile splitten.

1. Teil ist die Textcodierung (hier iso-8859-1)
2. Teil ist die Transfercodierung (hier 'Q' für 'quoted-printable')
3. Teil ist der codierte Text.

Du solltest also deine PHP Klasse überarbeiten, sodaß alle Headerzeilen,
die 8bit-Zeichen enthalten, codiert werden.
Für gewöhnlich sind das nur 'From', 'To' und 'Subject',
eventuell 'Sender'.
Da dies jedoch ein globales Problem ist, gibt es sicher schon was
fertiges, auch für PHP.

-- 
mfG Sascha

Und das, Wesley, ist eine Luftschleuseeeeeeeeeeeeeeeeeeeeeeeee...
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 490 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://de.postfix.org/pipermail/postfix-users/attachments/20131107/4e7cccc7/attachment.sig>


Mehr Informationen über die Mailingliste postfix-users