Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: E-Mail-Codierung ändern? | Content-Transfer-Encoding: 8bit statt quoted-printable

  1. #1
    Contao-Nutzer
    Registriert seit
    01.06.2012.
    Ort
    Freiburg
    Beiträge
    58

    Standard E-Mail-Codierung ändern? | Content-Transfer-Encoding: 8bit statt quoted-printable

    Liebe Contao-Gemeinde,

    ich möchte gerne beim E-Mail-Versand aus Contao 4.4 / Notification Center den E-Mail-Header anpassen:

    Standardmäßig versendet Contao Mails mit folgender Codierung:
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: quoted-printable


    Beim Encoding als "quoted-printable" wird nach 72 Zeichen ein Umbruch (codiert durch "=") eingefügt. Ich möchte die E-Mail aber weiterverarbeiten (Mailingliste mit Majordomo) und da verhackstückt es mir den Mail-Body.

    Gibt es eine – möglicherweise sogar updatesichere – Möglichkeit, die Codierung in 8bit zu ändern?
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: 8bit



    Danke für eure Hilfe!
    MrSesame

  2. #2
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Lt. Wikipedia "Quoted printable":
    Um die Länge der Zeilen auf 76 Zeichen zu begrenzen, wird bei längeren Zeilen nach meist 75 Zeichen ein = an das Zeilenende gesetzt und der Text in der nächsten Zeile fortgesetzt. Der auf diese Weise erzwungene Zeilenumbruch wird beim Dekodieren wieder entfernt.
    Es gibt gute Gründe, die Zeilenlänge zu begrenzen: https://stackoverflow.com/questions/...ng-html-e-mail

    Du solltest also bei der Weiterverarbeitung der Mail die entsprechenden Anpassungen vornehmen, nicht beim Senden.

  3. #3
    Contao-Nutzer
    Registriert seit
    01.06.2012.
    Ort
    Freiburg
    Beiträge
    58

    Standard

    Danke für deine Antwort, Folkfreund!

    Zitat Zitat von folkfreund Beitrag anzeigen
    Du solltest also bei der Weiterverarbeitung der Mail die entsprechenden Anpassungen vornehmen, nicht beim Senden.
    Die "Nachbearbeitung" der Mail ist in meinem Fall leider nicht möglich (Mailinglistendienst Majordomo).

    Das Problem ist, dass Contao (bzw. der Mailer) IMMER nach 75 Zeichen ein "=" einfügt, selbst dann, wenn die einzelnen Zeilen viel kürzer sind:
    Aus ...
    PHP-Code:
    approve passwort \
    subscribe namederMailingliste \
    einesehrlangemailadresse@domain.tld 
    ... wird zum Beispiel ...
    PHP-Code:
    approve passwort \
    subscribe namederMailingliste \
    einesehrlangemailadr=
    esse@domain.tld 
    Dabei sollte das "="-Zeichen doch eigentlich nur dann eingefügt werden, wenn eine einzelne Zeile zu lang ist, oder?

  4. #4
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Der abschließende Backslash bedeutet wohl, dass die Infos als Teil einer Zeile betrachtet werden sollen, auch wenn dein Editor sie in mehrere Zeilen schreibt.
    Woher stammt dein Beispiel? Kann man vielleicht einfach die Backslashes weglassen?

  5. #5
    Contao-Nutzer
    Registriert seit
    01.06.2012.
    Ort
    Freiburg
    Beiträge
    58

    Standard

    Genau, mit dem Backslash kann man dem Programm "Majordomo" sagen, dass die nächste Zeile als Teil der Zeile betrachtet werden soll. Ist nötig bei langen Zeilen (aber die Backslashes sind auch gar nicht das Problem). Majordomo wird per E-Mail gesteuert.

    Woher stammt dein Beispiel?
    Wenn sich ein FE-User registriert, soll per Notification Center eine E-Mail mit folgendem Inhalt an majordomo@domain.tld versendet werden:
    PHP-Code:
    approve passwort \
    subscribe namederMailingliste \
    ##member_email## 
    Wenn ich von Hand aus einem E-Mail-Programm / Webmailer eine Plain-Text-E-Mail verschicke, sieht der empfangene Quelltext so aus ...
    PHP-Code:
    ...
    Content-Typetext/plaincharset=utf-8
    Content
    -Transfer-Encoding8bit

    approve passwort 
    \
    subscribe namederMailingliste \
    einesehrlangemailadresse@domain.tld 
    ... und alles funktioniert (Adresse wird in Mailingliste eingetragen).

    Beim Versand aus Contao / Notification Center sieht der empfangene Quelltext so aus ...
    PHP-Code:
    ...
    Content-Typetext/plaincharset=utf-8
    Content
    -Transfer-Encodingquoted-printable

    approve passwort 
    \
    subscribe namederMailingliste \
    einesehrlangemailadr=
    esse@domain.tld 
    ... und die E-Mail-Adresse wird verhackstückt. Nach 75 Zeichen fügt Contao ein Umbruchzeichen ein.
    Merkwürdigerweise ist es Contao dabei egal, ob die >75 Zeichen in einer Zeile stehen, oder auf mehrere verteilt sind.

    Meine zwei Lösungsansätze wären also:
    a) Contao dazu bringen, dass es nur "="-Zeichen einfügt, wenn es nötig ist (also nur dann, wenn eine Zeile länger als 75 Zeichen ist)
    b) Content-Transfer-Encoding ändern in 8bit

    Aber wie...?

  6. #6
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Ah, ich hatte nicht verstanden, dass das NotificationCenter auch diesen Inhalt erzeugt. Dachte, dass es 'nur' da '=' einfügt.
    Dann ist es vielleicht ein Bug im NotificationCenter. Du kannst es da ja mal als Issue melden. Die Fachleute dort kennen sich da bestimmt besser aus als ich...

    Gruß, folkfreund

  7. #7
    Contao-Nutzer
    Registriert seit
    01.06.2012.
    Ort
    Freiburg
    Beiträge
    58

    Standard

    Ich habe es jetzt mit einem direkten Eingriff in vendor/contao/core-bundle/src/Resources/contao/library/Contao/Email.php gelöst, so wie es nighthawk in https://community.contao.org/de/show...l=1#post380856 geschrieben hat.
    Nicht schön, nicht updatesicher, aber für den Moment kann ich so "Content-Transfer-Encoding" auf 7bit (oder 8bit) setzen.

  8. #8
    Contao-Nutzer
    Registriert seit
    01.06.2012.
    Ort
    Freiburg
    Beiträge
    58

    Standard

    Mittlerweile habe ich festgestellt, dass der Bug (sofern es einer ist) nicht nur im NC auftritt, sondern immer, wenn Contao eine Mail verschickt:

    Beispiel Newsletter-E-Mail:

    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: quoted-printable
    (...)
    Sie haben folgende Verteiler auf abcdacbdacbdacbd.de abonniert:

    Newsle=
    tter Jazzchor Freiburg e.V.
    (...)


    Das Wort "Newsletter" steht am Anfang einer Zeile, trotzdem wird mittendrin ein Umbruch-Zeichen eingefügt.


    Beispiel System-E-Mail an Admin:

    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: quoted-printable
    (...)
    Das folgende Contao-Konto wurde aus Sicherheitsgr=C3=BCnden gesperrt:

    =
    Benutzer: lala
    Name: Abcde Lala
    Webseite: https://abcabcabcabcabcabcda=
    bcda.de/

    Der Account wurde f=C3=BCr 5 Minuten gesperrt, weil der Benut=
    zer dreimal hintereinander ein falsches Passwort eingegeben hat. Nach Ablau=
    f der Sperrfrist wird das Konto automatisch wieder entsperrt.

    Diese E-=
    Mail wurde von Contao generiert. Sie k=C3=B6nnen nicht darauf antworten.


    Der letzte Absatz wird bereits nach 8 Zeichen umgebrochen.

    Contao prüft also nicht die Zeichenanzahl seit Absatzbeginn, sondern einfach die Zeichenzahl seit dem letzten "="-Zeichen...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •