Der Martin: mb_send_mail() und seine Nutzungsvarianten

Beitrag lesen

Hallo,

  • Als Transfer-Encoding base64 zu benutzen, halte ich unter den gegebenen Umständen am bequemsten, hatte das auch gehofft, dass es so ist. Dass Du das ermittelt hattest, war mir bisher leider nicht aufgefallen.

naja, base64 ist als Transfer-Encoding wohl robust, weil dann plain ASCII auf dem Übertragungsweg genügt. Das erkauft man sich aber mit dem Nachteil, dass die Nachricht im Quellcode nicht mehr lesbar ist und das Transfervolumen um 1/3 zunimmt.

Eben mal an ein paar gesendeten Mails verifiziert: Mein Thunderbird (Linux) versendet Content-Type: text/plain; charset=utf-8 mit Content-Transfer-Encoding: 8bit, als quasi Klartext. MS Outlook (wahlweise Outlook 2016 oder Outlook 365) produziert dagegen hartnäckig base64.

Also mb_send_mail() produziert, da es ja UTF-8 verschickt, ein Mail, dessen Body wie folgt transportiert wird:

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: BASE64

Für base64-codierten Content noch UTF-8 zu deklarieren, ist eigentlich Unfug. Da kommen sowieso nur ASCII-Zeichen vor; charset=ASCII würde also genügen.

Man könnte also damit jetzt jede Datei versenden, auch Bilder... Da wäre dann nur der Content-Type-Header falsch. Wird der Default-Header überschrieben, wenn man den explizit setzt?

Zumindest bei mail() ist das so (hab ich schon gemacht).

Und da in BASE64 die originalen Zeilenumbrüche ebenfalls kodiert werden, nimmt mb_send_mail() die Gelegenheit beim Schopf und bricht das BASE64-Zeug nach 76 Zeichen um, der Zeilnumbruch ist "\n". (Auch beim Shell-Programm base64 passiert genau das per Voreinstellung!)

Mich persönlich würde noch interessieren, woher die 76 kommt (also 78 incl. CRLF)? Die RFCs sprechen imho immer von 80 Bytes incl. CRLF!?

Es sind höchstens 80, gern auch weniger. Aber 78 wäre kein Vielfaches von 4, man würde also eine base64-Gruppe zerreißen. Deshalb 76.

Live long and pros healthy,
 Martin

--
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
0 127

HTML5 , Formular und Versand mittels PHP

Kralle
  • formulare
  • html
  • php
  1. 2
    me-too
    1. 0
      Kralle
      1. 0
        me-too
      2. 3
        tk
  2. 0

    HTML5 , Formular und Versand mittels PHP, XSS und kontextgerechte Behandlung

    me-too
    • html
    • php
    • xss
    1. 0
      Kralle
      1. 0
        Der Martin
        1. 0
          Kralle
          1. 0
            me-too
      2. 0
        tk
  3. 0
    Raketenfehlersuchtrupp
    1. 0
      Kralle
    2. 0
      Kralle
      1. 0
        Matthias Apsel
      2. 0
        Raketenfehlersuchtrupp
  4. 0
    Kralle
    1. 0
      Der Martin
      1. 0
        Kralle
        1. 0
          Matthias Apsel
          1. 0
            Kralle
            1. 0
              Rolf B
              1. 0
                Kralle
            2. 0
              Raketenfehlersuchtrupp
              1. 0
                Kralle
                1. 0
                  Der Martin
                  1. 1
                    Matthias Apsel
                    • formulare
                    • html
                    1. 0
                      Kralle
                      1. 0
                        tk
                      2. 0
                        Raketenfehlersuchtrupp
                    2. 0
                      Der Martin
                      1. 0
                        Julius
                        1. 0
                          Der Martin
                      2. 0
                        Raketenhandbuchvorhleser
                2. 0
                  Raketenfehlersuchtrupp
                  1. 0
                    Kralle
            3. 1
              tk
          2. 0
            Raketenfehlersuchtrupp
            1. 0
              Kralle
              1. 0
                Raketenfehlersuchtrupp
      2. 0
        Raketenfehlersuchtrupp
        1. 0
          Der Martin
          1. 0
            Raketenhandbuchleser
          2. 0
            tk
            1. 0
              Raktenstartbeurteiler
              1. 0
                tk
    2. 0
      Raketenfehlersuchtrupp
  5. 3
    Matthias Apsel
    • meinung
    • sicherheit
    1. 1
      Der Martin
      1. 0
        Raketenfehersuchtrupp
      2. 0
        Kralle
        1. 0
          Matthias Apsel
          1. 0
            me-too
        2. 0
          Raktenhistoriker
    2. 0

      HTML5 , Formular und Versand mittels PHP, Medienbruch vermeiden?

      me-too
      • e-mail
      • formulare
      • sicherheit
  6. 0
    Kralle
    1. 0
      Matthias Apsel
      1. 0
        Kralle
      2. 0
        1unitedpower
    2. 0
      Der Martin
      1. 0
        Matthias Apsel
        1. 0
          Tabellenkalk
          1. 0
            Kralle
            1. 0
              Der Martin
              1. 0
                Kralle
                1. 1
                  Der Martin
                  1. 1
                    Raketenpostsystem
                    1. 0
                      Kralle
                      1. 0
                        Raketenpostsystem
                        1. 0
                          Kralle
                          1. 0
                            Julius
                      2. 0
                        Der Martin
                        1. 0
                          Kralle
                          1. 0
                            Der Martin
                          2. 0
                            Julius
                            1. 0
                              Kralle
                              1. 0
                                Julius
                                1. 0
                                  Kralle
                                  1. 0
                                    Tabellenkalk
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Raketenwilli
                                      2. 0
                                        Kralle
                                    2. 0
                                      Kralle
                                      1. 0
                                        Der Martin
                                        1. 0
                                          Kralle
                                          1. 0
                                            tk
                                          2. 0
                                            Der Martin
                                            1. 1
                                              Kralle
                                              1. 0
                                                Der Martin
                                                1. 0
                                                  klawischnigg
                                                  1. 0
                                                    Der Martin
                                                    • menschelei
                                                    1. 0
                                                      Matthias Apsel
                                                      1. 0
                                                        Robert B.
                                                    2. 0
                                                      Robert B.
                                                      1. 0
                                                        MudGuard
                                                        1. 1
                                                          Robert B.
                                                          1. 0

                                                            Kopierer, Versicherung, txt→pdf→txt

                                                            Raketenclown
                                                            • humor
                                                            • menschelei
                                          3. 1
                                            Julius
                                          4. 0

                                            Wohl gelöst.

                                            Raketenwilli
                                            1. 0
                                              Matthias Apsel
                                            2. 2
                                              Julius
                                              1. 1
                                                Der Martin
                                                1. 0
                                                  mb_wordwrap für Grobmotoriker
                                                2. 0
                                                  Raketenwilli
                                              2. 1
                                                Raketenwilli
                                                1. 0

                                                  Mails mit mb_send_mail und Zeilenlängen - Ist wordwrap notwendig?

                                                  Raketentestpilot
                                              3. 0

                                                wordwrap() für utf8?

                                                me-too
                                                • e-mail
                                                • internet
                                                • php
                                                1. 0

                                                  wordwrap() für utf8? - Nein! Das wird von mb_send_mail() mit BASE64 codiert und dann gewrappt!

                                                  Raketentestpilot
                                                  1. 0

                                                    mb_send_mail() und seine Nutzungsvarianten

                                                    me-too
                                                    1. 0
                                                      Der Martin
                                                      1. 0

                                                        Aufbau eines Emails

                                                        Raketenwissenschaftler
                                                        1. 0
                                                          Der Martin
                                                      2. 0
                                                        Raketenwissenschaftler
                                                        1. 0
                                                          Der Martin
                                                          1. 0
                                                            Raketenwissenschaftler
                                                          2. 0
                                                            Raketenwissenschaftler
                                                    2. 0
                                                      Raketenwissenschaftler
                                                    3. 0
                                                      Raketenwissenschaftler
                                      2. 1
                                        Julius
                                        1. 0

                                          HTML5 , Formular und Versand mittels PHP, falsche Dateiendung?

                                          me-too
                                          1. 1
                                            Der Martin
                                            1. 0

                                              Betreff anpassen?

                                              me-too
                                              • ux
                                              • zu diesem forum
                                              1. 1
                                                Julius
                            2. 0
                              LarryWalker
          2. 0
            Der Martin
      2. 0
        Kralle
    3. 0
      Robert B.
      • e-mail