vaudi: langer email-Betreff mit Sonderzeichen

Hallo zusammen,

ich verschicke nach einer Online Anmeldung eine Bestätigungsmail. Vorgabe ist, dass der Name des Kunden im Betreff steht. Da können aber auch bei gemeinschaftlicher Nutzung 2 Namen stehen.
Problem: wenn im Betreff Sonderzeichen vorkommen, kommt beim Kunden Schrott an.

Im Betreff soll z.B. stehen (leicht abgewandelte Version,aber eben mit Sonderzeichen):
Beispiel a): BlaBlaBla-Eröffnung Online auf example.com (Löwe, Manuel)
Beispiel b): BlaBlaBla-Eröffnung Online auf example.com (Wagner, Richard / Löwe, Manuel)

Nach viel Suchen hab ich gefunden, dass ich den Betreff codieren muss. Folgende Lösung hab ich:

$header_betreff = '=?ISO-8859-15?Q?'.imap_8bit ($header_betreff1.$header_betreff2).'?=';

Klappt hervorragend bei Beispiel a). Aber Beispiel b) bringt:

=?ISO-8859-15?Q?BlaBlaBla-Er=F6ffnung Online auf example.com (Wagner, Richard / L=F6bwe=

Also der hintere Teil des codierten Betreffs abgeschnitten. Ursache scheint zu sein, dass die 76 Zeichen Länge beim Betreff überschritten werden. Dummerweise bin ich zum Verwenden von Formulareingaben gezwungen, bei denen halt bei mehr als einem Sonderzeichen durch die Kodierung ein Ergebnisstring > 76 Zeichen möglich ist.

Hat irgend wer ne Idee, wie ich einen email-Betreff trotzdem ordentlich rüberbringen kann?

  1. Hallo vaudi,

    es gibt auch noch mb_encode_mimeheader(). Diese Funktion bricht Zeilen ab 74 Zeichen um. Ich hatte damit aber auch schon mal Probleme auf manchen Servern.
    Wenn ich RFC2822 richtig verstanden habe, darf eine Zeile aber durchaus mehr als 74 Zeichen haben ("Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.").

    Alex

    1. Nochmal hallo,

      falls ein Zeilenumbruch im Betreff Probleme macht, probier doch mal, den Betreff mit

      $header_betreff = mb_encode_mimeheader($header_betreff1.$header_betreff2, 'ISO-8859-15', 'Q', '');

      zu kodieren. Dann wird nicht umgebrochen (4. Parameter "linefeed" leer).

      Alex

      1. Nochmal hallo,

        falls ein Zeilenumbruch im Betreff Probleme macht, probier doch mal, den Betreff mit

        $header_betreff = mb_encode_mimeheader($header_betreff1.$header_betreff2, 'ISO-8859-15', 'Q', '');

        zu kodieren. Dann wird nicht umgebrochen (4. Parameter "linefeed" leer).

        Alex

        Hallöchen,

        genau das hab ich gebraucht! SUPER, DANKE!

        MfG
        vaudi