Lothar: Gutes Mailprogramm gesucht

Hi,
mit welchem PHP-Mailprogramm kann ich in Windows 11 möglichst sicher mails versenden, die ich aufgrund von Angaben im Kontaktformular generiere?
Danke Lothar

  1. Bevor man die Frage beantworten kann:

    Was hat „PHP-Mailprogramm“ mit „Windows 11“ zu tun? PHP läuft regelmäßig (also nicht immer, aber zumeist) auf einem Server unter Linux.

    Beschreibe also genauer, was Du vor hast.

    Sonst ist „voll verschlüsselte virtuelle Maschine ohne Internet-Anbindung mit Linux, einem Webserver und PHP nebst PHPMailer die Antwort. Bringt Dir nur nichts.

    Erforderlich:

    1. Generell ist die Frage von Bedeutung, wer(?) was(?) bestimmt (Inhalt(e), Empfänger, Meta-Daten, Anhänge) - und wie(?) das geschehen soll. Bevor das nicht klar ist, braucht man sich um technische Details nicht zu kümmern.

    2. Beschreibe bitte auch, was GENAU Du unter „möglichst sicher mails versenden“ verstehst. Das „möglichst sicher“ ist ein „weites Feld“. Man könnte darunter z.B. verstehen, dass Du das Mail verschlüsselt senden willst… „Sicherheit“ beginnt beim Design (1.) und endet bei der Software.

    1. Hallo,

      Was hat „PHP-Mailprogramm“ mit „Windows 11“ zu tun? PHP läuft regelmäßig (also nicht immer, aber zumeist) auf einem Server unter Linux.

      ja, mir kam es auch vor, als ob Lothar hier seine lokale Maschine und den Webserver ver[mw]ischt.

      1. Generell ist die Frage von Bedeutung, wer(?) was(?) bestimmt (Inhalt(e), Empfänger, Meta-Daten, Anhänge) - und wie(?) das geschehen soll.

      Das ist wiederum anhand der Fragestellung klar: Ein PHP-Script. Dieses Script muss dann auch dafür sorgen, dass mit dem Mailversand kein Schindluder getrieben werden kann.

      1. Beschreibe bitte auch, was GENAU Du unter „möglichst sicher mails versenden“ verstehst. Das „möglichst sicher“ ist ein „weites Feld“.

      Ja. Für mich ist "möglichst sicher" an allererster Stelle mal möglichst zuverlässig (technische Anforderung). "Sicher" im Bezug auf Inhalte oder möglichen Missbrauch (Stichwort: Spamschleuder) steht für mich erst an zweiter Stelle.

      Einen schönen Tag noch
       Martin

      --
      Wo wir sind, ist das Chaos. Aber wir können leider nicht überall sein.
      1. Ja. Für mich ist "möglichst sicher" an allererster Stelle mal möglichst zuverlässig (technische Anforderung). "Sicher" im Bezug auf Inhalte oder möglichen Missbrauch (Stichwort: Spamschleuder) steht für mich erst an zweiter Stelle.

        Wenn so eine Vorrichtung, die Mails technisch gesehen zum Empfänger bringt, darin aber Spam oder Crime (Phishing) sind, dann werden sich empfangende Mailserver dagegen wehren - in dem die dessen Transportweg schließen. Das ist dann just der Moment, in welchem die Mails - technisch gesehen - nicht mehr ankommen.

        Mithin ist Deine „zweite“ Stelle der „Bogen der Geige“ in der Ersten… Man kann hier keine Reihenfolge festlegen - Es müssen stets alle Sicherheitsaspekte beachtet werden.

        Hint:

        Beim ersten Mal glauben die Abuse-Teams einem Dienstleister wie mir noch auf die bloße Erklärung hin, dass das Problem erkannt und behoben sei… und hgeben die Sperre auf. Wie das beim zweiten Mal aussieht habe ich nie erfahren. Und will es auch nicht.

        1. Ja. Für mich ist "möglichst sicher" an allererster Stelle mal möglichst zuverlässig (technische Anforderung). "Sicher" im Bezug auf Inhalte oder möglichen Missbrauch (Stichwort: Spamschleuder) steht für mich erst an zweiter Stelle.

          Wenn so eine Vorrichtung, die Mails technisch gesehen zum Empfänger bringt, darin aber Spam oder Crime (Phishing) sind, dann werden sich empfangende Mailserver dagegen wehren - in dem die dessen Transportweg schließen. Das ist dann just der Moment, in welchem die Mails - technisch gesehen - nicht mehr ankommen.

          Mithin ist Deine „zweite“ Stelle der „Bogen der Geige“ in der Ersten… Man kann hier keine Reihenfolge festlegen - Es müssen stets alle Sicherheitsaspekte beachtet werden.

          Hint:

          Beim ersten Mal glauben die Abuse-Teams einem Dienstleister wie mir noch auf die bloße Erklärung hin, dass das Problem erkannt und behoben sei… und hgeben die Sperre auf. Wie das beim zweiten Mal aussieht habe ich nie erfahren. Und will es auch nicht.

          Danke, aber dies hilft mir nicht weiter

          1. Danke, aber dies hilft mir nicht weiter

            Tjs. Wenn Du die gestellten Fragen nicht beantwortest, dann wird bleibt es schwierig bis unmöglich, Dir weiter zu helfen.

            Bitte beschreibe, was das „Programm“ können soll.

      2. Das ist wiederum anhand der Fragestellung klar: Ein PHP-Script. Dieses Script muss dann auch dafür sorgen, dass mit dem Mailversand kein Schindluder getrieben werden kann.

        1. Beschreibe bitte auch, was GENAU Du unter „möglichst sicher mails versenden“ verstehst. Das „möglichst sicher“ ist ein „weites Feld“.

        Unter sicher verstehe ich ein Programm, das keine bekannten Sicherheitslücken aufweist. So habe ich z.B. gelesen, dass bei einem - ich weiß nicht mehr welchem - eine neue Version herauskam, weil eine Lücke entdeckt wurde.

        Ja. Für mich ist "möglichst sicher" an allererster Stelle mal möglichst zuverlässig (technische Anforderung). "Sicher" im Bezug auf Inhalte oder möglichen Missbrauch (Stichwort: Spamschleuder) steht für mich erst an zweiter Stelle.

        Genau das, und mit welchem PHP-Script arbeitest Du oder würdest Du arbeiten?

        1. Guten Abend!

          Ja. Für mich ist "möglichst sicher" an allererster Stelle mal möglichst zuverlässig (technische Anforderung). "Sicher" im Bezug auf Inhalte oder möglichen Missbrauch (Stichwort: Spamschleuder) steht für mich erst an zweiter Stelle.

          Genau das, und mit welchem PHP-Script arbeitest Du oder würdest Du arbeiten?

          Diese Frage würde auch mich interessieren!

          Und besonders würde ich mich freuen, wenn sich jemand an die Neufassung dieses Tutorials machen könnte:

          Wenn der Artikel aktuell wäre, könnte man darauf verlinken.

          Herzliche Grüße

          Matthias Scharwies

          --
          Die Signatur findet sich auf der Rückseite des Beitrags.
          1. Hallo,

            Genau das, und mit welchem PHP-Script arbeitest Du oder würdest Du arbeiten?

            Diese Frage würde auch mich interessieren!

            Und besonders würde ich mich freuen, wenn sich jemand an die Neufassung dieses Tutorials machen könnte:

            Wenn der Artikel aktuell wäre, könnte man darauf verlinken.

            meine Mails und meine Seite liegen bei Domain Factory. Obwohl deren Formmailer nur Mails auf mein Konto zuließ, hat DF diesen Dienst aus Sicherheitsgründen eingestellt.

            Mein alter Arbeitgeber hostet WWW und Mails selbst, und hatte auch einen Formmailer, der nur Mails auf eigene Seiten zuließ. Auch dieser Dienst wurde aus Sicherheitsgründen eingestellt.

            Daher habe ich den Verdacht, das ein sicherer Formmailer wohl nicht so einfach zu erstellen ist.

            Gruß
            Jürgen

            1. Servus!

              Hallo,

              Genau das, und mit welchem PHP-Script arbeitest Du oder würdest Du arbeiten?

              Diese Frage würde auch mich interessieren!

              Und besonders würde ich mich freuen, wenn sich jemand an die Neufassung dieses Tutorials machen könnte:

              Wenn der Artikel aktuell wäre, könnte man darauf verlinken.

              Daher habe ich den Verdacht, das ein sicherer Formmailer wohl nicht so einfach zu erstellen ist.

              Ja, einerseits. andererseits müssten wir dann an alles außer CSS weglassen, weil es könnte ja …

              Ich habe parallel auf Mastodon gefragt

              und dort 2 Antworten erhalten:

              Was soll der denn leisten können?

              und von jemand anderem:

              @selfhtml der #Symfony Mailer macht einen hervorragenden Job! Er kann eine Menge und lässt sich prima testen. Die Logik, wie E-Mails versendet werden, ist eine andere als die des PHPMailers, den es ja nach wie vor gibt; rein objektorientiert und gut strukturiert, was aus meiner Sicht logischer ist.

              Das werd' ich in meine Baustellenseite aufnehmen!

              Herzliche Grüße

              Matthias Scharwies

              --
              Die Signatur findet sich auf der Rückseite des Beitrags.
        2. Hallo Lothar,

          uns ist aber immer noch nicht klar, wie das System aussieht, das Du da betreibst. Wie Raketenwilli schon schrieb: Win11 und PHP-Mailer ist irgendwie nicht das, was man zusammen betreibt.

          Welche Rolle spielt hier Windows 11? Betreibst Du auf einem Windows 11 PC einen Webserver? Wenn ja, von wo ist der zugänglich? Nur in deinem Privatnetz? Öffentlich?

          Oder möchtest Du auf einem Windows 11 PC nur ein PHP Script laufen lassen, das Mails versendet, basierend auf Daten, die dein Kontaktformular (das ggf. ganz wo anders gehostet wird) eingesammelt hat? Die Frage der Sicherheit hängt dann auch daran, wie deine Mails aussehen sollen.

          Welche Datenfelder erhebt dein Kontaktformular? Kann man eine Mailadresse eingeben, an die etwas vermailt werden soll (z.B. als Eingangsbestätigung)? Dann achte darauf, dass Du NUR den Eingang bestätigst und sonst nichts. Keinesfalls Werbung für irgendwas.

          Wiederhole auch keine Daten, die im Kontaktformular eingetragen wurden. Grund 1: Dann musst Du auch nicht das Problem lösen, dass diese Daten möglicherweise so fabriziert sind, dass sie im Mailprogramm dessen, der die Bestätigung liest, Schaden anrichten. Grund 2: Diese Daten können inhaltlich bösartig sein. Wenn die Person X bei Dir etwas einträgt und als Mailadresse die von Person Y einträgt, dann könnte X über dein Formular eine Nachricht an Y schicken, falls Du irgendwelche Daten aus dem Formular überträgst. Diese Nachricht kann krimineller Natur sein, sie kann auch für Y ehrverletzend sein. In beiden Fällen kann das Ärger für Dich bedeuten.

          Das sind aber Sicherheitsthemen, die mit dem Mailer nichts zu tun haben. Es mag sein, dass PHP Mailer viel Wert darauf legen, die zu vermailenden Inhalte korrekt in den richtigen Kontext zu bringen. Aber über die Natur der Inhalte wissen sie nichts. Deswegen solltest Du keine Inhalte vermailen, die nicht vorher von Dir geprüft wurden.

          Eine andere Sicherheitslücke kann das Kontaktformular selbst sein. Der beste Mailer hilft Dir nichts, wenn Dir jemand via Kontaktformular einen fabrizierten String einwirft, der deine Datenbank schreddert. Die Geschichte von Bobby Tables ist dafür die uralte und immer noch relevante Mahnung.

          Wenn ich mir anschaue, welche Sicherheitslöcher im PHPMailer über die Zeit gefunden wurde, dann scheint mir, dass viele Probleme in der Featuritis dieser Mailer liegen. Je mehr Funktionen er anbietet, desto mehr Angriffsvektoren gibt es. Und einige der genannten Vektoren hätten durch korrekte Programmierung desjenigen, der den Mailer benutzt, behoben werden können.

          Um zu wissen, ob dein Wunschmailer sicher ist, musst Du also auch wissen, was genau er für Dich tun soll. Du musst bei jeder Funktion im Mailer, die Du aufrufst und der Du Eingaben des Benutzers übergibst, genau überlegen, was an dieser Stelle passiert. Und stets überlegen, ob und wie Du die Benutzerdaten validieren und bereinigen kannst.

          Wie sollen wir Dir das abnehmen?

          Rolf

          --
          sumpsi - posui - obstruxi
          1. Guten Morgen,

            .…

            Das sind aber Sicherheitsthemen, die mit dem Mailer nichts zu tun haben.

            Um zu wissen, ob dein Wunschmailer sicher ist, musst Du also auch wissen, was genau er für Dich tun soll. Du musst bei jeder Funktion im Mailer, die Du aufrufst und der Du Eingaben des Benutzers übergibst, genau überlegen, was an dieser Stelle passiert. Und stets überlegen, ob und wie Du die Benutzerdaten validieren und bereinigen kannst.

            Wie sollen wir Dir das abnehmen?

            Indem wir moderne Produkte wie den Symfony_Mailer empfehlen und alle Bedenken und möglichen Probleme in diesen Abschnitt packen:

            Vorteile gegenüber Eigenbaulösungen

            Herzliche Grüße

            Matthias Scharwies

            --
            Die Signatur findet sich auf der Rückseite des Beitrags.
            1. Indem wir moderne Produkte wie den Symfony_Mailer empfehlen und alle Bedenken und möglichen Probleme in diesen Abschnitt packen:

              Vorteile gegenüber Eigenbaulösungen(¹)

              Ich bleibe aber dabei, dass im Falle einfacher Mails (nur Text-Teil, genau ein Empfänger, kein variabler Versender) und den gegebenen technischen Voraussetzungen die sinnhafte(!) Verwendung von mail() die sicherste Lösung ist. Das Erkennen, ggf. Filtern oder Zurückweisen von unzulässigen Input (z.B. Zeilenumbrüchen in der Adresse oder im Subjekt - sofern man dessen Setzung durch den Webbenutzer so notlos wie überhaupt zulassen will) ist eigentlich keine allzugroße Herausforderung.

              Schwierig wird es erst, wenn man Multipart-Mails oder Anhängen versenden will oder kein MTA konfiguriert ist - was nicht oft vorkommt bzw. bei einem eigenem Server zumindest für diejenigen, die einen solchen eigenem Server betreiben können(²), auch nicht „so gar schwierig“ ist.

              Sowohl mail() als auch PHPMailer und eben auch der Symfony_Mailer haben das Potential dafür, bei unbedarfter Anwendung zu ungewollten Ergebnissen zu führen.

              Gerade die großen Libs bringen als „eierlegende Wollmilchsäue“ schon in der Theorie viel Programmcode und also eigene Fehlerquellen mit. Was mir immer Bauchschmerzen bereitet ist, dass große Teile davon auch dann geladen werden, wenn diese gar nicht gebraucht werden.


              ¹) Rate(t) mal, wer das „Schon gehackt“ eigentlich in die Titelzeile des dort verlinkten Beitrags tippen wollte, aber gerade nur ein abgelaufenes Feingebäck hatte…

              ²) Gemeint ist das „Können“, welches vom „Lernen, kombiniert mit Sorgfalt und einem wachen Verstand“ her kommt.

          2. Hallo Rolf,
            leider war ich einige Zeit offline, daher erst jetzt meine Reaktion. Ich habe ein private Homepage bei einem Provider mit persönlichen Infos, Fotos etc. Auf der Homepage habe ich seit vielen Jahren ein gut gesichertes Kontaktformular, auf dem noch nie irgendwelcher Schrott eines Bots hinterlegt war.
            Die Daten, die im Kontaktformular eingegeben wurden, wurden über mail() an mich gesandt.
            Nachdem ich immer wieder Kritik an dem Mailprogramm gelesen habe, wollte ich mich nach einem "besseren" umsehen.
            Daher die Anfrage.

            1. Du hast also genau den simplen Fall mit fest stehendem und von Dir bestimmten Subjekt(1) und an eine von Dir bestimmte Mailadresse(2) und nur einen, vom Verwender bestimmten Text-Teil.

              mail() ist Dein Freund. Du musst nicht jedem alles unter allen Umständen glauben. Und die Libs sind in Deinem Fall so angebracht, wie im Winter mit dem Mähdrescher (freilich mit Mähwerk und angehängtem Werkstattwagen) zum 100m entferntem Bäcker zu fahren um Brötchen zu holen.

              Halte Dich jetzt noch daran, kein Bestätigungsmail an eine vom Benutzer bestimmte Adresse zu versenden(3), sondern diesem seine Nachricht via Webseite anzuzeigen und Du bist fertig.

              Über solche Briefkästen eingeworfenen Spam vermeidet man schon ganz gut, wenn das Formular nicht via Suchmaschine auffindbar ist - aber auch nicht in der robots.txt auftaucht. Am besten heisst das Skript auch nicht mail(form).php oder kontakt.php

        3. Unter sicher verstehe ich ein Programm, das keine bekannten Sicherheitslücken aufweist. So habe ich z.B. gelesen, dass bei einem - ich weiß nicht mehr welchem - eine neue Version herauskam, weil eine Lücke entdeckt wurde.

          Somit kannst Du also gar nichts nehmen. Denn faktisch jede Software enthält Fehler oder muss irgendwann an neue technische Entwicklungen (z.B. Verschlüsselung, Änderungen der verwendeten Libarys, …) angepasst werden.

  2. Dieser Beitrag wurde gelöscht: Gefährlicher Unsinn - Kontextwechsel wird komplett missachtet.