Custom Spamreport + encoding

markus.leitold

New Member
Jan 7, 2021
4
0
1
45
Hi everybody,

we just installed PMG in Production and are customizing the daily/weekly Spamreport mails for the users.

Therefore we copied the "/var/lib/pmg/templates/spamreport-verbose.tt" to "/var/lib/pmg/templates/spamreport-custom.tt" and modified it with some more Text in Body and another mail title. Both of these are in german language and contains umlauts (ö,ü,ä).
The file encoding is UTF-8 and the beginning looks like this:

Code:
[%- IF timespan == 'week' -%]
[%- SET title = "Wöchentlicher Spam Report für '${pmail}' - ${date}'" -%]
[%- ELSE %]
[%- SET title = "Täglicher Spam Report für '${pmail}' - ${date}" -%]
[%- END -%]

[% BLOCK tooltip %]Received: [% d.date %] [% d.time %]
From: [% d.envelope_sender %]
TO: [% d.receiver %]
Size: [% d.bytes %]
Score: [% d.spamlevel %]
File: [% d.file %]
[% END %]

<html>
  <head>
    <title>[% title %]</title>
  </head>
  <body>

    <div align=center>

            <div style='width:600px;'><h2>[% title %]</h2></div>

.....
<br>
        Hier eine Auflistung aller aktuell in Quarantäne befindlichen Spam Mails. Bitte loggen Sie sich zur Quarantäne Verwaltung im <a href='[% managehref | url %]'>Webinterface</a> ein oder verwenden Sie einfach die Links bei jeder hier aufgelisteten Spam Mail.<br>

When a User receives such a mail, the mail body is quit fine, all umlauts are displayed correctly. but the umlauts in mail headers title field looks like ISO encoded like this:
1610046230662.png

Any suggestions how to correctly encode the title concerning the umlauts?

Thx in advance.
Markus
 
Moin Heiko,

hatte auch kurz daran gedacht, die HTML Schreibweise für Umlaute zu benutzen, das aber erst verworfen, weil die falsche Darstellung ja nicht im Body der Mail, der ja genau das HTML ist, auftritt, sondern im Subject Feld des Mail Headers. Der Body wurde ja korrekt dargestellt.

Ich habs jetzt trotzdem mal ausprobiert, und es scheint tatsächlich besser zu gehen. Thunderbird und ein Android Client zeigen die Umlaute in der Mail jetzt komplett richtig an. Dabei ist es egal, ob die Template Datei UTF-8 oder ISO-8859 codiert ist (nachvollziehbar, wenn keine besonderen Zeichen wie "echte" Umlaute enthalten sind, die "normalen" Buchstaben und Sonderzeichen sind in den beiden Encodings ja gleich codiert).

In einem Webmail Client allerdings (Kopano-Webmail) sieht der Mail Subject immer noch falsch aus:
1610098038581.png

Es scheint also auch vom Mail Client abzuhängen, wie die Mail dargestellt wird.

Der Mail Quelltext sieht so aus:
1610098486811.png
Ich konnte durch andere Tests herausfinden, dass das "Subject" Feld im Mail Header aus dem "<title>" Tag des HTML Headers aus dem Template erzeugt wird. Der Subject ist dann aber doch wieder in irgendeiner Form "UTF-8" codiert? Im Gegensatz dazu sieht der Mail Body dahingegen völlig unverändert zum Template File aus, der <title> und das <h2> Tag stehen genauso im Template.

Ich stelle mir also gerade die Frage, wie das Template File denn nach Vorstellung von Proxmox nun komplett richtig aussehen muß, sowohl was Encoding, als auch Inhalt betrifft, damit "besondere" Zeichen, wie Umlaute an jeder Stelle und in jedem Mail Client richtig dargestellt werden?
Wie würde es z.B. jmd mit Chinesischen oder Kyrillischen Schriftzeichen aufbauen? Diejenigen würden doch UTF-8 als Encoding nehmen und diese Zeichen einfach ins Template schreiben, oder?

Viele Grüße
Markus
 
. Der Subject ist dann aber doch wieder in irgendeiner Form "UTF-8" codiert?
das encoding is base64 - ist im mime-standard definiert: https://tools.ietf.org/html/rfc2047

Im Gegensatz dazu sieht der Mail Body dahingegen völlig unverändert zum Template File aus, der <title> und das <h2> Tag stehen genauso im Template.
der body wird als text/html mime-part mit quoted-printable encoding verschickt - und nicht weiter verarbeitet.

Unserer Erfahrung nach ist es am robustesten die templates mit html-entities (&auml;) zu erstellen, damit kommen die meisten mail-clients, die html-mails darstellen kommen am besten zurecht. (gibt auch einige online-tools die einen text in diese Form bringen)

Ich hoffe das hilft!
 
Sorry wegen des Doppelpostings, dachte nur, eine deutschsprachige Frage wäre "drüben" besser aufgehoben ;)

Zu dem Ergebnis mit dem HTML Entities bin ich auch schon gekommen, das scheint am Besten zu gehen. Und der Mail Body macht so auch gar keinen Stress, Entities für Umlaute sollte ja jeder Mail Client, der HTML kann, sauber anzeigen.

Aber der Subject im Mail Header ist ja was völlig anderes und hat nix mit HTML zu tun.

Für mich sieht die Verarbeitung also so aus:
Proxmox nimmt den Inhalt des "<title>" Tags aus dem Template, Ersetzt die HTML Entities zu normalen Umlauten, macht also einen normalen String im UTF-8 encoding daraus (vermutet wg. des =?UTF-8? Prefix, der im Quelltext der Mail zu sehen ist) und encodiert das ganze base64.

Auf ner Linux Konsole kann ich den String aus dem Mail Quelltext jedenfalls so wieder lesbar machen:
1610114803957.png

Man sieht, da ist ein "normales" ä, nicht die ursprünglichen HTML Entities, wie im Template, und da die Linux Konsole auf UTF-8 encoding steht, gehe ich davon aus, dass der decodierte String ebenfalls UTF-8 ist.

Habe ich das so einigermaßen richtig verstanden?
 
Für mich sieht die Verarbeitung also so aus:
Proxmox nimmt den Inhalt des "<title>" Tags aus dem Template, Ersetzt die HTML Entities zu normalen Umlauten, macht also einen normalen String im UTF-8 encoding daraus (vermutet wg. des =?UTF-8? Prefix, der im Quelltext der Mail zu sehen ist) und encodiert das ganze base64.
stimmt im groben und ganzen - hier der source dazu:
https://git.proxmox.com/?p=pmg-api....b1478366a6dfc3941515185421cbc70;hb=HEAD#l1228

Man sieht, da ist ein "normales" ä, nicht die ursprünglichen HTML Entities, wie im Template, und da die Linux Konsole auf UTF-8 encoding steht, gehe ich davon aus, dass der decodierte String ebenfalls UTF-8 ist.
ja:
https://git.proxmox.com/?p=pmg-api....b1478366a6dfc3941515185421cbc70;hb=HEAD#l1143

Ich hoffe das erklärt es.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!