me-too: mb_send_mail() und seine Nutzungsvarianten

Beitrag lesen

Hi,

Der Versuch von Fastüx ist irrelevant, da er nicht vorhersehen kann kann, ob immer alle SMTP-Relays mitspielen. Dafür muss man sich an die gültigen Konventionen (RFCs) halten, ggf. auch an ältere. Man weiß ja nicht immer, welchen Weg die Email nimmt.

Was macht Dich so sicher?

Die Frage müsste lauten: warum ist das noch so unsicher?
Du hast die Testbedingungen noch nicht genannt. Lass uns das jetzt also bitte gemeinsam zu Ende denken/testen :-)

  • Basissystem: Linux (?)
  • Prüfstelle für den Output von von mb_send_mail(), reingucken kannst Du ja nicht. Hast Du das sendmail-Script (?) verbogen? Das wäre eine Möglichkeit, die generierte Maildatei anzusehen. Anstelle von sendmail ein Script einbinden, dass die Maildatei erst einmal speichert, anstatt sie an den SMTP-Service zu übergeben.
  • 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.
  • Die Array-Variante für die Header austesten, welche Umbrüche werden da produziert? Welche werden bei der Stringwurst-Variante richtig umgesetzt von mb_send_mail()? Das Handbuch ist an dieser Stelle vermutlich falsch.
  • Wie kann man einen multipart-mixed Body produzieren?
  • Müssen die Header noch vorher MIME-codiert werden, oder stimmt es, dass mb_send_mail() sich selber darum kümmert?
  • Was passiert auf Windows-Systemen?

Ich komme leider erst am Montag, 15. Jun wieder an meinen Linux-PC. Der steht in der Firma. Es wäre also nett, wenn Du das praktisch testen könntest. Und dann sollten wir versuchen, eine kleine Doku fürs Wiki darüber zu verfassen, in mehreren (3?) Anforderungsgraden. Dabei ginge es ums Verständnis, nicht ums Vermeiden vom Swift-Mailer o.ä. Wo liegen die Injection-Schwachstellen, was muss man noch beachten, usw.? Was bedeutet "Content-Type", was "Content-Transfer-Encoding", Was ist eine Multipart-MIME-Mail, usw.

Ich hab mir jetzt das mail mal angesehen.

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

Mithin also genau so, wie binären Kram.

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?

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!?

Meine Aussage war, dass ich mit mb_send_mail() kein wordwrap() benötige. Meine zweite Aussage war, dass ein Mail mit einer superlangen Zeile im Body ankommt. Nichts gesagt habe ich über den Transfer, aber eigentlich war das - wg. URF-8 absehbar…

Na eben :-)
Ich hatte jetzt der Vorsicht halber angenommen, dass Du die Datei nach dem Transport angeschaut hast, nachdem sie auch sendmail und die Kette der SMTP-Hops durchlaufen hat. Die ist aber höchst unbestimmt.
Dazu müsste man jetzt noch wissen, welche Mailserver involviert waren, Typ und Version. Dass Content mit base64-Encoding richtig durchläuft, wäre heutzutage aber zu erwarten.

Viele Fragen, lass es uns fertig machen!
Das würde dann das Antworten auf die Fragen dieses OP und die des @Linuchs in Zukunft vereinfachen. Und auch meine unx deine klären :-)

LG
me-too

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