Gerhard: Mail lundet im Junk-Ordner

0 132

Mail lundet im Junk-Ordner

Gerhard
  • php
  1. 0
    Der Martin
    • e-mail
    • php
  2. 0
    Mitleser 2.0
  3. 0
    Felix Riesterer
    1. 0
      Mitleser 2.0
      1. 0
        Felix Riesterer
        1. 0

          Die Headerzeilen eines solchen Mails werden benötigt.

          Raketenwilli
          • php
          • sicherheit
          • webserver
          1. 0
            Rolf B
            1. 0
              Raketenwilli
              1. 0
                Der Martin
                1. 0

                  Datenbank ohne Passwort (Sicherheit) - Tipp für Hoster

                  Raketenwilli
                  • linux
                  • sicherheit
                  • webserver
                  1. 0
                    Der Martin
                    1. 0
                      Rolf B
                      1. 0
                        Raketenwilli
          2. 0
            Felix Riesterer
            1. 0
              Raketenwilli
        2. 0
          Mitleser 2.0
          1. 0
            Hans P.
            1. 0

              Wunschtraum aller Spammer ...

              Raketenwilli
              • internet
    2. 0
      Gerhard
      1. 4
        Felix Riesterer
        1. 0
          Gerhard
          1. 0
            Gerhard
            1. -1
              Raketenwilli
              • php
              • sicherheit
              1. 0

                (Typo)

                Raketenwilli
                1. 0
                  Gerhard
                  1. 0
                    Der Martin
                    1. 0

                      XAMPP/MercuryMail als Ursache für Spam-Deklaration gefunden?

                      Raketenwilli
                      • sicherheit
                      • webserver
                      1. 0

                        Ergänzende Konfiguration für PHP-Mailer

                        Raketenwilli
                  2. 0

                    XAMPP

                    Raketenwilli
                    1. 0
                      Gerhard
                      1. 0

                        About: Times

                        Raketenwilli
                        1. 0
                          Gerhard
                          1. 0
                            Raketenwilli
                            1. 1
                              Der Martin
                              • e-mail
                              • php
                              • sicherheit
                              1. 0
                                Gerhard
                              2. -1

                                About: Geheimniskrämerei und Hilfesuche

                                Raketenwilli
                                • zur info
              2. 0
                Gerhard
                1. -1
                  Raketenwilli
                  1. 1
                    Der Martin
                    • seitenbewertung
                    • zu diesem forum
                    1. 0
                      Raketenwilli
              3. 0
                Gunnar Bittersmann
                • php
                • tippfehler
                1. 0
                  Raketenwilli
              4. 0
                Aufmerksamer Mitleser (Bernd)
                1. 0
                  Der Martin
                  1. 0
                    Rolf B
                    1. 0
                      Raketenwilli
                  2. 0
                    Aufmerksamer Mitleser (Bernd)
                    1. 0
                      Der Martin
                      1. 0
                        Rolf B
                    2. 0
                      Raketenwilli
                      1. 0
                        Aufmerksamer Mitleser (Bernd)
                        1. 0
                          Raketenwilli
          2. 0
            Felix Riesterer
            1. 0
              Gerhard
        2. 0
          Gerhard
          1. 0
            Der Martin
            • e-mail
            • php
            1. 0
              Gerhard
              1. 1
                Felix Riesterer
                1. 0
                  Raketenwilli
                2. 0
                  Gerhard
                  1. 0

                    Umlaute? „Fünktionört“ es „wärklich?“

                    Raketenwilli
                    1. 0
                      Gerhard
                    2. 0
                      Der Martin
                      1. 0
                        Raketenwilli
                        1. 0
                          Der Martin
                          1. 0
                            Raketenwilli
                            1. 0
                              Der Martin
                              1. 0
                                Raketenwilli
                                1. 0
                                  Der Martin
                                  1. 0
                                    Raketenwilli
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Raketenwilli
                                        1. 0
                                          Der Martin
          2. 1

            Definitiv Konfigurationsfehler.

            Raketenwilli
            • netzwerk
            1. 0
              Gerhard
              1. 0

                Funktioniert definitiv: PHPMailer via sendmail

                Raketenwilli
  4. 0

    Mail landet im Junk-Ordner seit einigen Monaten

    Jasper
    1. 0

      PHP-Formmailer

      Matthias Scharwies
      1. 0
        Raketenwilli
        • software
        1. 0
          Jasper
          1. 0
            Raketenwilli
            1. 0
              Jasper
              1. 0
                Mitleser 2.0
                1. 0
                  Der Martin
                  • e-mail
                  • software
                  1. 0
                    Jasper
                    1. 0
                      Raketenwilli
                      1. 0

                        (Falscher Link)

                        Raketenwilli
                        1. 0
                          Jasper
                          1. 0
                            Gerhard
                            1. 0
                              Raketenwilli
                              1. 0
                                Gerhard
                                1. 0
                                  Raketenwilli
                                  1. 0
                                    Gerhard
                                    1. 0
                                      Raketenwilli
                                      1. 0
                                        Gerhard
                                        1. 0
                                          Raketenwilli
                              2. 0
                                Gerhard
                                1. -1
                                  Raketenwilli
                                  1. 0
                                    Gerhard
                                  2. 2
                                    Rolf B
                                    1. 0
                                      Raketenwilli
                                      1. 0
                                        Jasper
                                        1. 0

                                          „Gefunden“ wahrlich nicht...

                                          Raketenwilli
                          2. 0
                            Jasper
              2. 0
                Felix Riesterer
                1. 0
                  Raketenwilli
                  1. 0
                    Raketenwilli
    2. -1

      Muss man ein Mailformular haben? Ein Gegenargument.

      Raketenwilli
      • recht
      1. 0

        @Mister „-1“

        Raketenwilli
        • zur info
      2. -1

        Zur Dimension des Problems...

        Raketenwilli
        • recht
        • zur info
        1. 0
          Rolf B
          1. 0
            Gerhard
            1. 1
              Matthias Scharwies
              1. 0
                Der Martin
                1. 0
                  Matthias Scharwies
                  1. 0
                    Raketenwilli
            2. 1
              Raketenwilli
              1. -1

                Nachtrag: Negative Feststellungsklage bei Rechtsmissbrauch: Androhen aber besser lassen.

                Raketenwilli
              2. 0
                Richard
                1. -1
                  Raketenwilli
                  1. -1

                    Aha.

                    Raketenwilli
                  2. 0
                    Rolf B
  5. 0
    Rolf B
    1. 0
      Tabellenkalk
      1. -1
        Raketenwilli
        • meinung
        1. 1
          Gerhard
          1. 0

            Wie man Hilfe bekommt

            Raketenwilli
            1. 0
              Gerhard
              1. 0
                Raketenwilli
                1. 0
                  Gerhard
                  1. 0

                    Automatische Erkennung eigener Mails an sich selbst als Spam - was tun?

                    Raketenwilli

Hallo, ich habe mit der PHP-Funktion ein mail verschickt. Leider kam es bei GMX im Junk-Ordner an. Meines Wissens habe ich keinerlei verdächtige Begriffe im mail verwendet. Ich habe schon nach einem GMX-Forum gesucht, leider erfolglos. Weiß jemand, wie ich herausfinden kann, warum das mail als Junk erkannt wird? Sind die gängigsten Kriterien öffentlich?

  1. Hallo Gerhard,

    ich habe mit der PHP-Funktion ein mail verschickt. Leider kam es bei GMX im Junk-Ordner an. Meines Wissens habe ich keinerlei verdächtige Begriffe im mail verwendet. Ich habe schon nach einem GMX-Forum gesucht, leider erfolglos. Weiß jemand, wie ich herausfinden kann, warum das mail als Junk erkannt wird?

    dafür gibt es viele mögliche Gründe. Der tatsächliche Mail-Inhalt ist nur einer davon. Ganz wesentlich wird auch bewertet, ob die angebliche Absenderadresse zur Domain passt, von der die Mailnachricht tatsächlich versendet wurde. Denkbar ist auch, dass andere Kunden deines Hosting-Anbieters schon unangenehm aufgefallen sind und daher die IP-Adresse als Absender auf irgendwelchen Blacklists steht.

    Sind die gängigsten Kriterien öffentlich?

    Ich fürchte nein. Da kannst du IMO nur im Nebel stochern.

    Einen schönen Tag noch
     Martin

    --
    Мир для України.
  2. Weiß jemand, wie ich herausfinden kann, warum das mail als Junk erkannt wird?

    Viele Mailserver hinterlassen im Header einen Hinweis. Bei GMX nennt der sich „X-GMX-Antispam“. Wie Du an den Header rankommst? Im Thunderbird via „Steuerungstaste + U“. Im Webmailer geht das auch irgendwie, meine ich.

  3. Lieber Gerhard,

    ich habe mit der PHP-Funktion ein mail verschickt.

    da! Genau da! Da ist das Problem.

    Lösung? Verwende nicht mail(), sondern eine Bibliothek wie z.B. den PHPMailer. Der weiß nämlich worauf es alles ankommt. Und der will auch Zugangsdaten zu einem SMTP-Server, damit er Mails so vesenden kann, wie Du es von einem Mailprogramm aus auch tust. Und GMX wird wegen des SMTP-Servers die Mail anders empfangen, als wenn sie von der mail()-Funktion kommt, weil GMX passend konfigurierten SMTP-Servern mehr vertraut, als irgendwelchen potenziellen Spam-Mail-Scripts.

    Liebe Grüße

    Felix Riesterer

    1. da! Genau da! Da ist das Problem.

      Lösung? Verwende nicht mail(), sondern eine Bibliothek wie z.B. den PHPMailer. Der weiß nämlich worauf es alles ankommt. Und der will auch Zugangsdaten zu einem SMTP-Server, damit er Mails so vesenden kann, wie Du es von einem Mailprogramm aus auch tust. Und GMX wird wegen des SMTP-Servers die Mail anders empfangen, als wenn sie von der mail()-Funktion kommt, weil GMX passend konfigurierten SMTP-Servern mehr vertraut, als irgendwelchen potenziellen Spam-Mail-Scripts.

      Einspruch! Das kann die Lösung sein, muss es aber nicht. Auch hinter "mail()" kann eine saubere SMTP-Konfiguration liegen, ohne dass man davon überhaupt etwas weiß. Ohne den Grund der SPAM-Einstufung zu kennen, ist guter Rat schwierig.

      1. Lieber Mitleser,

        da! Genau da! Da ist das Problem.

        Auch hinter "mail()" kann eine saubere SMTP-Konfiguration liegen, ohne dass man davon überhaupt etwas weiß.

        na siehste. Haben wir das Problem doch gleich gefunden: kann. Auf kann sollte man sich tunlichst nicht verlassen, sondern eine Lösung bauen, bei der man Gewissheit hat, wie z.B. ein eigens dafür konfigurierter SMTP-Server, der von einer Bibliothek mit passenden Zugangsdaten verwendet wird.

        Liebe Grüße

        Felix Riesterer

        1. Auf kann sollte man sich tunlichst nicht verlassen, sondern eine Lösung bauen, bei der man Gewissheit hat

          Klar. Man baut auf Verdacht eine andere Lösung - Schaut sich aber auf gar keinen Fall jemals die Header der als Spam markierten Versandstücke an. Das ist ja womöglich zu einfach und nur diese stumpfe Tatsachenwahrnehmungsverweigerung kann einen davor bewahren, dass man die Gewissheit erlangt, dass die andere Lösung auch nichts bringt…

          Zweites Problem. Jemanden, der sich über die zahlreichen Dateien beklagt, damit zu befassen, ein Klartext-Passwort wenigstens so sicher wie möglich auf dem (Web)server aufzubewahren:

          $mail->Password = 'secret'; // Passwort für SMTP-Server
          

          Das ist jedenfalls die unsicherste Variante - die jeder auf seiner „don't do-Liste“ stehen haben sollte.

          @Gerhard: Die Headerzeilen eines solchen Mails werden benötigt.

          Und dabei bitte nicht den Domain-Part der versendenden Mailadresse und die IPs anonymisieren…

          1. Hallo Raketenwilli,

            Das ist jedenfalls die unsicherste Variante - die jeder auf seiner „don't do-Liste“ stehen haben sollte.

            Tatsächlich sollte man erwähnen, wie man es sicherer macht. Irgendwo muss man ja einen Anfang haben, um die Security-Kette aufzubauen. Ein im Sourcecode verschlüsseltes Passwort muss auch entschlüsselt werden. Mit welchem Passwort?

            Was ist sinnvoll?

            • "Verstecken" von Passwörtern in der PHP.INI (die außerhalb des Documentroot liegt) und einlesen mit ini_get?
            • "Verstecken" von Passwörtern in einer Include-Datei, die außerhalb des Documentroot liegt?
            • "Verstecken" von Passwörtern in einer Datenbank-Tabelle?

            Alle 3 Methoden sollten - meine ich - dafür sorgen, dass man zum Lesen der Passwörter auf dem Server Code ausführen muss und es nicht reicht, Dateien innerhalb des Documentroot lesen zu können.

            Wie seht ihr das?

            Rolf

            --
            sumpsi - posui - obstruxi
            1. Die dritte Methode (Datenbank) hat das schlechteste Aufwand-Nutzen-Verhältnis. Und birgt die Gefahr, dass das Datenbank-Passwort dann ebenso schlecht abgelegt wird, wie gesehen.

              Mein Favorit: „Verstecken von Passwörtern in einer Include-Datei, die außerhalb des Documentroot liegt“

              1. Hallo,

                Die dritte Methode (Datenbank) hat das schlechteste Aufwand-Nutzen-Verhältnis. Und birgt die Gefahr, dass das Datenbank-Passwort dann ebenso schlecht abgelegt wird, wie gesehen.

                ich habe auch schon Hoster gesehen, die für den Datenbankzugriff gar kein Passwort verlangen, weil aufgrund der geltenden Routing- und Firewall-Regeln der Zugriff sowieso nur von localhost kommen kann, und der darf ja immer.
                Eine typische Schönwetterphilosophie.

                Mein Favorit: „Verstecken von Passwörtern in einer Include-Datei, die außerhalb des Documentroot liegt“

                Hört sich gut an. Selbst wenn durch irgendeinen abstrusen Serverfehler mal PHP-Code ungeparst rausgeht, ist das Passwort nicht gleich mit drin.

                Einen schönen Tag noch
                 Martin

                --
                Мир для України.
                1. ich habe auch schon Hoster gesehen, die für den Datenbankzugriff gar kein Passwort verlangen, weil aufgrund der geltenden Routing- und Firewall-Regeln der Zugriff sowieso nur von localhost kommen kann, und der darf ja immer.


                  Ich gehe mal davon aus, dass Du nicht die Möglichkeit meinst, den MySQL/MariaDB-Benutzer und dessen Passwort in einer php.ini bzw. .user.ini zu verewigen:

                  mysqli.default_user =
                  ; Default password for mysqli_connect() (doesn't apply in safe mode).
                  ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
                  ; https://php.net/mysqli.default-pw
                  mysqli.default_pw =
                  

                  Das ist aber sicherer als in Skripten unterhalb von Document-Root.


                  Das kann (eigentlich, jenseits von Skript-Konstruktionen, bei denen dem MySQL-Client ein Passwort anhand des Unix-Benutzerkennzeichens automatisch „untergejubelt“ wird, siehe oben) nur bei einem eigenem (virtuellem) Server der Fall sein (nicht beim „shared hosting“) und entspricht dann wohl dem, was Debian-artige beim Setup machen: Wer mittels sudo oder su Root werden kann, ist das dann (bei einer Verbindung via Socket, die der Client nutzt wenn localhost oder nichts als Server angegeben wird) auch - via MySQL/MariaDB-Client - auch ohne Passwort.

                  Auf einem eigenem Server (ganz gleich ob Hardware oder virtuell) ist man also selbst in der Verantwortung.

                  Zur Frage der Sicherheit: Wenn ein Angreifer root-Rechte auf einem Server hat, dann „war es das auch“ für die Datenbanken, denn der System-Root hat „viele schöne Möglichkeiten“ (beginnen wir bei der Option --skip-grant-tables beim Start des Dienstes oder einer passenden Zeile in der Konfiguration) - dagegen hilft allenfalls das Betreiben der Datenbank in durch einen Benutzer separat verschlüsselten Containern (etwa via virtuelle Maschine oder Docker). Allerdings nur bis sich dann eine berechtigte Person dort anmeldet oder der Wörterbuch bzw. Brut-Force-Angriff auf die Verschlüsselung erfolgreich ist und nur dann wenn bei Auftauchen ungewöhnlicher Root-Prozesse die VM oder der Container und der zur Entschlüsselung notwendige Mount gecancelt wurde…

                  Soll heißen: Das der System-Root sich lokal und ohne Passwort an der Datenbank anmelden kann ist keine Sicherheitslücke - das sieht nur so aus.

                  Mein Fazit: Hoster, die Linux-Server vermieten, sollten Kunden, die einen gültigen LPIC-2 oder dergleichen nachweisen, Rabatt geben. Die „versauen“ weniger oft IP-Adressen und brauchen auch deutlich seltener Support – sparen also „Manpower“.

                  1. Hallo,

                    ich habe auch schon Hoster gesehen, die für den Datenbankzugriff gar kein Passwort verlangen, weil aufgrund der geltenden Routing- und Firewall-Regeln der Zugriff sowieso nur von localhost kommen kann, und der darf ja immer.

                    Ich gehe mal davon aus, dass Du nicht die Möglichkeit meinst, den MySQL/MariaDB-Benutzer und dessen Passwort in einer php.ini bzw. .user.ini zu verewigen:

                    doch, vermutlich meine ich das. Ich wusste damals noch nicht, wie das hinter den Kulissen funktioniert, aber wenn ich die Beschreibung zu mysql_connect() (seinerzeit noch ohne 'i'!) richtig deute, dann gelten bei fehlenden Angaben im Funktionsaufruf die in der PHP-Konfiguration eingetragenen Defaultwerte.

                    Das ist aber sicherer als in Skripten unterhalb von Document-Root.

                    Mag sein; ich finde, das hat trotzdem einen bitteren Beigeschmack. Denn eine .user.ini passt eben nicht auf das Muster ^\.ht, das in der typischen Apache-Konfiguration ausgeschlossen ist. Eine .user.ini könnte ein Angreifer also leicht runterladen und anschauen. Ob ihm das hilft, wenn er die DBMS-Zugangsdaten kennt, ist eine andere Frage. Da wäre wieder meine ursprüngliche Mutmaßung, dass der DBMS-Server nur Verbindungen von localhost oder zumindest aus dem eigenen Netz akzeptiert.

                    Das kann (eigentlich, jenseits von Skript-Konstruktionen, bei denen dem MySQL-Client ein Passwort anhand des Unix-Benutzerkennzeichens automatisch „untergejubelt“ wird, siehe oben) nur bei einem eigenem (virtuellem) Server der Fall sein (nicht beim „shared hosting“)

                    Doch, das war damals ein billiges Shared-Hosting-Paket - aber frag mich nicht nach Einzelheiten. Dafür ist es schon zu lange her.

                    Auf einem eigenem Server (ganz gleich ob Hardware oder virtuell) ist man also selbst in der Verantwortung.

                    Das gilt ja grundsätzlich, nicht nur für das DBMS.

                    Einen schönen Tag noch
                     Martin

                    --
                    Мир для України.
                    1. Hallo Martin,

                      Ich kenne das nur vom IIS, ich meine, da sind alle Dateien die auf . beginnen oder auf .config enden für den Abruf vom Web gesperrt.

                      Für einen Apache würde ich alles, was auf . beginnt oder auf .ini oder .inc endet, sperren.

                      Bei uns in der Firma ist es so dass jedes Web einen eigenen Application Pool bekommt. Den kann man als Network Service, als IIS User oder als eigenen Domänen User laufen lassen. Und wenn mein Application Pool als Domänen User läuft, kann ich problemlos mit integrierter Security zu einer Datenbank verbinden.

                      Sowas geht unter Linux sicherlich auch, die Frage ist nur, ob ein billiger Hoster das anbietet...

                      Rolf

                      --
                      sumpsi - posui - obstruxi
                      1. Application Pool

                        Sowas geht unter Linux sicherlich auch,

                        Jepp. Docker kann sowas, snaps gehen auch als User … Viele schöne Skript-Ideen könnte ich da haben.

                        die Frage ist nur, ob ein billiger Hoster das anbietet...

                        Wozu? Entweder reicht „billig“ oder eben nicht. Anbieter von Fertighäusern bauen ja regelmäßig auch keine Wolkenkratzer oder Krankenhäuser. (Womöglich aber Bahnhöfe oder Flughäfen. - wegduck)

          2. Lieber Raketenwilli,

            Klar. Man baut auf Verdacht eine andere Lösung - Schaut sich aber auf gar keinen Fall jemals die Header der als Spam markierten Versandstücke an. Das ist ja womöglich zu einfach und nur diese stumpfe Tatsachenwahrnehmungsverweigerung kann einen davor bewahren, dass man die Gewissheit erlangt, dass die andere Lösung auch nichts bringt…

            Deine Polemik ignoriert die Tatsache, dass der OP wahrscheinlich kein Experte in Mailheadern ist und das nötige Know-How nicht hat, um zu erreichen, wonach er fragt. Daher ist es sinnvoll, dieses Problem auf jemanden zu schieben, der sich von Berufswegen damit beschäftigen muss: Dem Mailserverbetreiber. Der muss sich damit auskennen. Und wenn der OP via SMTP versendet, hat er eine deutlich bessere Chance, dass die Mailheader passen, als wenn er das via mail() erledigt. Mal ganz davon abgesehen, dass sich in dieser Thematik immer wieder neue Sachlagen ergeben, in die man sich einarbeiten müsste, um auf dem Stand der Dinge zu bleiben, wenn man denn stur das alles immer selbst machen wollte.

            YMMV

            Liebe Grüße

            Felix Riesterer

            1. Lieber Raketenwilli,

              Klar. Man baut auf Verdacht eine andere Lösung - Schaut sich aber auf gar keinen Fall jemals die Header der als Spam markierten Versandstücke an. Das ist ja womöglich zu einfach und nur diese stumpfe Tatsachenwahrnehmungsverweigerung kann einen davor bewahren, dass man die Gewissheit erlangt, dass die andere Lösung auch nichts bringt…

              Deine Polemik ignoriert die Tatsache, dass der OP wahrscheinlich kein Experte in Mailheadern ist und das nötige Know-How nicht hat

              Deshalb sollte er einen solchen ja posten, hat von mir sogar Hinweise bekommen, was anonymisierbar ist.

              Mit Mailheader wäre womöglich schon vor Tagen klar gewesen, woran es liegt.

        2. na siehste. Haben wir das Problem doch gleich gefunden: kann. Auf kann sollte man sich tunlichst nicht verlassen, sondern eine Lösung bauen, bei der man Gewissheit hat, wie z.B. ein eigens dafür konfigurierter SMTP-Server, der von einer Bibliothek mit passenden Zugangsdaten verwendet wird.

          Der Versandweg der Mail ist ein wichtiger Faktor, ja. Aber eine Garantie für einen garantiert SPAM-sicheren Weg ist es auch nicht.

          Mail ist ein fieses Thema.

          Es braucht Infos aus dem Header der Mail, um das abschätzen zu können.

          1. Es braucht Infos aus dem Header der Mail, um das abschätzen zu können.

            Andere Frage:
            Was ist im Header zwingend vorgeschrieben, damit das mail nicht als Junk erkannt wird?

            1. Es braucht Infos aus dem Header der Mail, um das abschätzen zu können.

              Andere Frage:
              Was ist im Header zwingend vorgeschrieben, damit das mail nicht als Junk erkannt wird?

              Das man „einfach mal nur so drei Anforderungen an Header erfüllen“ müsse, damit ein Mail nicht als Junk oder Spam klassifiziert wird, wäre der Wunschtraum aller Spammer. Also ist die Sache weitaus komplizierter und umfasst inzwischen auch die korrekte Konfiguration weiterer Dienste wie z.B. DNS.

              Mit „drei mal googlen“ ist es auch nicht getan, das Thema ist buchfüllend und deshalb können Leute wie ich damit auch Geld verdienen.

              Da aber jeder Mailserver, über den das Mail „ging“, und manchmal sogar ein lokaler Spamfilter Informationen im Header zurücklässt kann man einem solchen oft entnehmen was passiert ist. Weitere Prüfungen sind anhand der ebenfalls darin enthaltenen IP-Adressen möglich. Das ist es, was der „Mitleser 2.0“ meint. Man kann die Header lesen, es gibt aber auch (Online-)Werkzeuge, welche das versuchen.

              Ich empfehle aber keinen, weil ich nicht weiß, wie gut oder schlecht diese sind und ob deren Betreiber den Datenschutz ernst nehmen.

    2. Hallo Felix,
      ich werde mich wohl mit Deinem Vorschlag befassen.
      Allerdings führt Dein Link nur auf die Seite mit einem Verzeichnis voller Dateien.
      Gibt es eine leicht verständliche Anleitung für die Verwendung des PHPMail?

      1. Lieber Gerhard,

        Allerdings führt Dein Link nur auf die Seite mit einem Verzeichnis voller Dateien.

        ja, das ist bei Git-Projekten üblicherweise so. Aber dort gibt es immer eine README-Datei, die auf der GitHub-Seite nach dem Dateilisting auch konkret angezeigt wird.

        Gibt es eine leicht verständliche Anleitung für die Verwendung des PHPMail?

        Eben in besagter README. Vielleicht ist das Englische jedoch für Dich gerade nicht „leicht verständlich“. Dann picke ich Dir mal die Rosinen aus dem Kuchen:

        Alternativ, wenn man Composer nicht benutzt, kann man PHPMailer auch als Zip-Datei herunterladen, (Doku und Beispiele nicht enthalten), dann die entzippten Inhalte des PHPMailer-Verzeichnisses im Script mit dem passenden Pfad referenzieren:

        <?php
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;
        
        require 'path/to/PHPMailer/src/Exception.php';
        require 'path/to/PHPMailer/src/PHPMailer.php';
        require 'path/to/PHPMailer/src/SMTP.php';
        

        Die require-Direktiven benötigen hier anstelle von path/to/PHPMailer natürlich den von Deinem Script aus passenden Pfad.

        Einfaches Beispiel

        <?php
        // PHPMailer-Klasse in den globalen Namespace heben
        // Diese Zeilen müssen am Anfang des Scripts stehen, nicht innerhalb einer Funktion
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;
        
        // Klasse(n) laden
        require 'path/to/PHPMailer/src/Exception.php';
        require 'path/to/PHPMailer/src/PHPMailer.php';
        require 'path/to/PHPMailer/src/SMTP.php';
        
        //Create an instance; passing `true` enables exceptions
        $mail = new PHPMailer(true);
        
        try {
            //Server settings
            $mail->SMTPDebug = SMTP::DEBUG_SERVER; // detaillierte Ausgaben
            $mail->isSMTP(); // SMTP-Server verwenden
            $mail->Host = 'smtp.example.com'; // hier eigenen SMTP-Server einstellen
            $mail->SMTPAuth = true; // SMTP mit Benutzerdaten verwenden
            $mail->Username = 'user@example.com'; // Benutzername für SMTP-Server
            $mail->Password = 'secret'; // Passwort für SMTP-Server
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // mit SSL-Verschlüsselung
            $mail->Port = 587; // Server-Port für SSL-verschlüsselte Verbindungen
        
            // Empfänger
            $mail->setFrom('from@example.com', 'Mailer');
            $mail->addAddress('joe@example.net', 'Joe User'); // ein Empfänger
            $mail->addAddress('ellen@example.com'); // Name ist optional
            $mail->addReplyTo('info@example.com', 'Information');
            $mail->addCC('cc@example.com');
            $mail->addBCC('bcc@example.com');
        
            // Attachments
            $mail->addAttachment('/var/tmp/file.tar.gz'); // Attachment hinzufügen
            $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // optional Dateiname zum Speichern
        
            // Inhalt
            $mail->isHTML(true); // HTML-formatierte Mails
            $mail->Subject = 'Here is the subject';
            $mail->Body    = 'HTML-formatierte Nachricht <b>in fett!</b>';
            $mail->AltBody = 'Nurtext-Inhalt für nicht HTML-fähige Clients';
        
            $mail->send();
            echo 'Mail wurde versandt.';
        } catch (Exception $e) {
            echo "Mail konnte nicht versandt werden. Mailer Error: {$mail->ErrorInfo}";
        }
        

        Hilft Dir das schon weiter?

        Liebe Grüße

        Felix Riesterer

        1. Hallo Felix,
          ich werde es versuchen, obwohl ich mit der objektorientierten Programmierung noch nichts am Hut hatte.
          Vielen Dank für die bisherige Hilfe.

          1. Hallo,
            jetzt habe ich die vielen Beiträgen zum Thema Passwort gelesen und "bin so klug wie nie zuvor" (Faust).

            1. Hallo,
              jetzt habe ich die vielen Beiträgen zum Thema Passwort gelesen und "bin so klug wie nie zuvor" (Faust).

              Ersetze

                  $mail->Host = 'smtp.example.com'; // hier eigenen SMTP-Server einstellen
                  $mail->SMTPAuth = true; // SMTP mit Benutzerdaten verwenden
                  $mail->Username = 'user@example.com'; // Benutzername für SMTP-Server
                  $mail->Password = 'secret'; // Passwort für SMTP-Server
              

              durch

              reguire_once( '/Verzeichnis/ausserhalb/Document_root/.ht_db_data' );
              

              und in der Datei '/Verzeichnis/ausserhalb/Document_root/.ht_db_data' notierst Du:

              $mail->Host     = 'smtp.example.com'; // hier eigenen SMTP-Server einstellen
              $mail->SMTPAuth = true; // SMTP mit Benutzerdaten verwenden
              $mail->Username = 'user@example.com'; // Benutzername für SMTP-Server
              $mail->Password = 'secret'; // Passwort für SMTP-Server
              
              • Ja, das ist genau das gelöschte Zeug: [STRG]+[A] und [STRG]+[V] sind also gute Werkzeuge dafür.
              • Der Name der Datei beginnt mit „.ht“ damit nicht gleich alles schief geht wenn jemand nicht weiß, was '/Verzeichnis/ausserhalb/Document_root/' bedeutet. Weißt Du es?

              Im Übrigen würde ich stark dazu neigen,

              } catch (Exception $e) {
                  echo "Mail konnte nicht versandt werden. Mailer Error: {$mail->ErrorInfo}";
              }
              

              ebenfalls durch etwas wie

              } catch( Exception $e ) {
                   echo 'Sorry: Nachricht kann nicht verschickt werden. Mehr im Error-log.';
                   ini_set( 'display_errors', 0 );
                   trigger_error( $e, E_USER_ERROR );
              }
              

              zu ersetzen um einen Angreifer nicht notlos über den Grund des Scheiterns zu informieren. Bei Wladimir Putin ist das egal (der nimmt Tatsachen nicht mehr wahr) - aber Hacker lesen sowas und passen ihr Vorgehen ggf. an.

              Dann hätte ich noch den Rat, sicherheitsrelevantes Zeug nicht selbst zu programmieren so lange Du nicht wenigstens mit den Grundbegriffen der Sprache (hier PHP) und der gesamten Technik vertraut bist (Webserver, User-Agent,...).

              Also: Du brauchst jemand, der auskennt und sich Dein Zeug ansieht. Sonst gehst Du mit dem Teufel - um beim „Faust“ zu bleiben.

              1. require_once( '/Verzeichnis/ausserhalb/Document_root/.ht_db_data' );
                

                „reguire_once“ sieht zwar sehr ähnlich aus führt aber nur zu einem Syntax-Error...

                1. Hallo zusammen,
                  muss ich, um das PHPMAIL in meinem lokalen XAMPP zu testen, in XAMPP etwas installieren?
                  Vorhanden ist dort MercuryMail.

                  1. Hallo,

                    muss ich, um das PHPMAIL in meinem lokalen XAMPP zu testen, in XAMPP etwas installieren?

                    nein, musst du nicht.

                    Vorhanden ist dort MercuryMail.

                    Ja, das ist nicht schlecht. Aber verwende in PHPMailer einfach die SMTP-Zugangsdaten (Servername, Benutzername, Kennwort) deines regulären Mail-Accounts.

                    Einen schönen Tag noch
                     Martin

                    --
                    Мир для України.
                    1. Vorhanden ist dort MercuryMail.

                      Ja, das ist nicht schlecht.

                      Kann der eigentlich inzwischen SMTPS? Und falls er es kann: Wurde das konfiguriert? Beworben wird es nicht - und falls der MercuryMail SMTPS nicht kann nehmen viele Mailserver Mails von ihm seit Snowdens Enthüllungen nicht mehr an.

                      Und beim direkten Versand („full end-to-end delivery“) an den SMTP des Empfängers (wird beworben) wird die Nachricht von allen mir bekannten Spamdetektoren als Spam markiert, weil diese von einem Host stammt, der laut Spamhaus.org keine authentifizierten Mails ausliefern sollte. → Test der eigenen (offenbarten) IP.

                      Ohne SMTPS zu einem Smarthost (anderem SMTP bei einem Hoster, „Relayed SMTP“) wird das also nichts. Wenn MercuryMail das nicht kann (und in der Liste fehlt es) dann war es mal „nicht schlecht“.

                      1. Beachte aber, dass Du bei Deinem Hoster/Mailanbieter nachsehen musst, denn die Konfiguration kann sich unterscheiden.

                        Ältere Server:

                        $mail->Host       = 'alt.example.org';
                        $mail->SMTPAuth   = true;
                        $mail->Port       = 465;
                        
                        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS
                        ## Womöglich aber statt dessen:
                        # $mail->SMTPSecure = 'ssl';
                        
                        $mail->Username   = 'user@example.com';
                        $mail->Password   = 'XXXXXXXXXXXXXXXXXXX';
                        
                        

                        Neuere Server:

                        $mail->Host       = 'neu.example.org';
                        $mail->SMTPAuth   = true;
                        $mail->Port       = 587;
                        
                        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
                        ## Womöglich aber statt dessen:
                        # $mail->SMTPSecure = 'tls';
                        
                        $mail->Username    = 'user@example.com';
                        $mail->Password    = 'XXXXXXXXXXXXXXXXXXX';
                        

                        Du findest die notwendigen Infos dort, wo steht wie Du einen Mailclient konfigurieren sollst.

                        Diese Infos bindest Du dann also in die mit require_once() zu inkludierende Datei ein, die außerhalb des Root-Verzeichnisses liegt und auf einem Apache Webserver am besten mit den Zeichen '.ht' beginnt.

                  2. muss ich, um das PHPMAIL in meinem lokalen XAMPP zu testen, in XAMPP etwas installieren?

                    Nein. Oder „Jein“. Es kommt darauf an, was Deine Webseite noch so können soll.

                    Mittelfristig solltest Du aber die Finger von XAMPP lassen – weil das als Testumgebung „eher suboptimal“ ist: Eine Installation auf einem richtigen Server (Linux, Unix) kann sich punktuell ganz anders verhalten als XAMPP. Bei aktuellen Windows-Installationen ist der HyperVi dabei. Setze darin ein Linux (am besten Debian, ohne grafische Oberfläche auf ( 1 Kern, 1 GB Arbeitsspeicher, 5 GB Platte sind da schon „mehr als zu viel“) und kommuniziere mit diesem über ssh - auch das ist in Windows inzwischen „out of the box“ fest eingebaut. Nur so lernt man es richtig.

                    1. Hi,
                      Du überschätzt meine Kenntnisse.
                      Mich jetzt auch noch mit Linux/Unix zu befassen, überfordert mich!

                      1. Mich jetzt auch noch mit Linux/Unix zu befassen, überfordert mich!

                        Genau deshalb schrieb ich

                        Mittelfristig

                        Was Du schon gelernt hast: Mit etwas scheinbar Einfachem, wie dem Versenden (und Empfangen) eines schnöden Emails, kann man (wegen der vielen „Beteiligten“) ein ganz schön großes Fass aufmachen…

                        Ich will es nicht versäumen, Dich nochmals darauf hinzuweisen, dass ich vermeine, die wahrscheinlichste Ursache dafür gefunden zu haben, dass die Mails als Spam (Junk) klassifiziert werden.

                        1. Zur Klarstellung:
                          Der mailversand klappt im Internet nicht.
                          Lokal habe ich das noch nicht getestet, daher meine Frage nach der Möglichkeit mit XAMPP.

                          1. Der mailversand klappt im Internet nicht.

                            Überlege, was ich wohl mit dieser Meldung wohl anfangen könnte.

                            • Ich kann bei dem Input nur antworten, „Ok. Es geht also nicht.“
                            1. Hallo,

                              Der mailversand klappt im Internet nicht.

                              Überlege, was ich wohl mit dieser Meldung wohl anfangen könnte.

                              • Ich kann bei dem Input nur antworten, „Ok. Es geht also nicht.“

                              dann hast du einen erheblichen Teil der bisherigen Diskussion ausgeblendet. Und noch dazu Gerhards Hervorhebung, die dem Verständnis förderlich ist, im Zitat entfernt. Es geht also um ein Problem, das online beim Webhoster auftritt. Außerdem fügt er noch hinzu:

                              Lokal habe ich das noch nicht getestet

                              Und damit ist erst recht klar, dass XAMPP und damit Mercury als Teil davon noch nie im Spiel war, sondern nur als Alternative zum Offline-Testen angedacht war. Und hat der ganze Thread nicht damit angefangen, dass Gerhard klar beschrieben hat, er würde mit mail() versenden?

                              Einen schönen Tag noch
                               Martin

                              --
                              Мир для України.
                              1. Danke Martin für die Klarstellung,
                                jetzt verstehe ich das -1!

                              2. Dieser Beitrag wurde gelöscht: Der Beitrag ist unkonstruktiv oder provokativ und trägt zu einer Verschlechterung der Stimmung bei.
              2. Hallo,

                jetzt habe ich die vielen Beiträgen zum Thema Passwort gelesen und "bin > Im Übrigen würde ich stark dazu neigen,

                } catch (Exception $e) {
                    echo "Mail konnte nicht versandt werden. Mailer Error: {$mail->ErrorInfo}";
                }
                

                ebenfalls durch etwas wie

                } catch( Exception $e ) {
                     echo 'Sorry: Nachricht kann nicht verschickt werden. Mehr im Error-log.';
                     ini_set( 'display_errors', 0 );
                     trigger_error( $e, E_USER_ERROR );
                }
                

                zu ersetzen um einen Angreifer nicht notlos über den Grund des Scheiterns zu informieren.

                Was bewirkt ini_set( 'display_errors', 0 );
                trigger_error( $e, E_USER_ERROR );

                Dann hätte ich noch den Rat, sicherheitsrelevantes Zeug nicht selbst zu programmieren so lange Du nicht wenigstens mit den Grundbegriffen der Sprache (hier PHP) und der gesamten Technik vertraut bist (Webserver, User-Agent,...).

                Wenn ich mich darauf verlassen kann, kompetente Vorschläge zu erhalten, traue ich mir die Realisierung zu.

                1. Was bewirkt

                  ini_set( 'display_errors', 0 );
                  

                  Fehlerbeschreibungen werden nicht zum Useragent (Browser) gesendet.

                  trigger_error( $e, E_USER_ERROR );
                  

                  Also wird die Fehlermeldung geloggt (Frag den Hoster, wo Du das Logfile ansehen sehen kannst) und das Programm abgebrochen. → Einstiegsseite im Handbuch.

                  Wenn ich mich darauf verlassen kann, kompetente Vorschläge zu erhalten, traue ich mir die Realisierung zu.

                  Ah. Du machst Dir Sorgen wegen dem -1? Gib da nicht viel drauf.

                  Das war wohl eher ein nur selbstvermeintlich „gesunder“, un- oder „zwangsgeimpfter“ Putinversteher, der lieber täglich Bleichmittel trinken würde. Wäre es was fassbares technisches, dann hätte die „Person X“ das auch geschrieben... es gab zu Bewertungen furchtbar endlose und endlich fruchtlose Diskussionen.

                  Trotzdem: Mit Copy & Paste kopiert man auch Mist zusammen. Manchmal scheint der zu funktionieren. Bis dann die Kollegen fragen, warum Du Mails mit Werbung für die Teilnahme am Ukrainekrieg, blaue Pillen oder Schwanzvergrößerungen verschickst – während Deine potentiellen Kunden sich beschweren, dass Du die Nachrichten nicht bearbeitest und Du Dich wiederum wunderst, weil Du doch gar keine bekommen hast…

                  1. Hallo JR,

                    Ah. Du machst Dir Sorgen wegen dem -1? Gib da nicht viel drauf.

                    ah, da hat mal wieder einer an deinem Selbstwertgefühl gekratzt.
                    Nein, ich war's nicht.

                    Das war wohl eher ein nur selbstvermeintlich „gesunder“, un- oder „zwangsgeimpfter“ Putinversteher, der lieber täglich Bleichmittel trinken würde.

                    Solche polemischen, dämlichen Äußerungen sind ein Grund, warum du immer wieder Minus-Votes einfängst. Genau bei diesem Beitrag hat es mich auch gejuckt. Und dann dachte ich, was soll's, der begreift's ja eh nicht.

                    Wäre es was fassbares technisches, dann hätte die „Person X“ das auch geschrieben...

                    Vielleicht. Manchmal reicht auch schon der Stinkefinger ohne Kommentar.

                    Trotzdem: Mit Copy & Paste kopiert man auch Mist zusammen. Manchmal scheint der zu funktionieren. Bis dann die Kollegen fragen, warum Du Mails mit Werbung für die Teilnahme am Ukrainekrieg, blaue Pillen oder Schwanzvergrößerungen verschickst – während Deine potentiellen Kunden sich beschweren, dass Du die Nachrichten nicht bearbeitest und Du Dich wiederum wunderst, weil Du doch gar keine bekommen hast…

                    Das ist auch polemisch - aber hier bin ich zur Abwechslung derselben Ansicht.

                    Einen schönen Tag noch
                     Martin

                    --
                    Мир для України.
                    1. Ah. Du machst Dir Sorgen wegen dem -1? Gib da nicht viel drauf.

                      ah, da hat mal wieder einer an deinem Selbstwertgefühl gekratzt.

                      Nö. 😃 Ich kann so einem doch den polemischen Spiegel vorhalten.

              3. Dieser Beitrag wurde gesperrt: Der Beitrag ist unkonstruktiv oder provokativ und trägt zu einer Verschlechterung der Stimmung bei.

                @@Raketenwilli

                reguire_once( '/Verzeichnis/ausserhalb/Document_root/.ht_db_data' );
                

                Jerry, bist du es?

                --
                When the power of love overcomes the love of power the world will know peace.
                — Jimi Hendrix
                1. @@Raketenwilli

                  reguire_once( '/Verzeichnis/ausserhalb/Document_root/.ht_db_data' );
                  

                  Jerry, bist du es?

                  20. März 2022 19:53

                  Zum Glück ist es ja nur das tatsächlich hilfreiche Zeug, welches geeignet erscheint, die Stimmung im Forum zu verschlechtern.

              4. Hi,

                • Der Name der Datei beginnt mit „.ht“ damit nicht gleich alles schief geht wenn jemand nicht weiß, was '/Verzeichnis/ausserhalb/Document_root/' bedeutet. Weißt Du es?

                Den Satz verstehe ich nicht.

                • Der Name der Datei beginnt mit „.ht“ damit nicht gleich alles schief geht

                Was kann schiefgehen?

                /Verzeichnis/ausserhalb/Document_root/

                Ja, was ist das?
                Ich kann doch meine Seiten nur in das Document_root und darin liegende Verzeichnisse speichern.

                1. Hallo Bernd,

                  • Der Name der Datei beginnt mit „.ht“ damit nicht gleich alles schief geht
                    Was kann schiefgehen?

                  jemand könnte die Datei über HTTP abrufen und findet dann das Passwort.
                  In der Defaultkonfiguration vom Apachen ist aber festgelegt, dass Dateien, die mit ".ht" beginnen, über HTTP nicht erreichbar sind. Deswegen ist diese Namenswahl eine zusätzliche kleine Absicherung.

                  /Verzeichnis/ausserhalb/Document_root/ Ja, was ist das?
                  Ich kann doch meine Seiten nur in das Document_root und darin liegende Verzeichnisse speichern.

                  Das hängt von deinem Hosting-Anbieter und dem gebuchten Paket ab. Bei einigen ist es so, wie du beschreibst. Bei anderen kannst du das Verzeichnis, das Document Root sein soll, selbst bestimmen. Das kann dann auch gern eine Verzeichnisebene unter dem für dich erreichbaren Top-Level sein.

                  Einen schönen Tag noch
                   Martin

                  --
                  Мир для України.
                  1. Hallo Martin und Bernd,

                    Bei anderen kannst du das Verzeichnis, das Document Root sein soll, selbst bestimmen.

                    Wenn man aus dem Document Root, das der Hoster bestimmt, nicht hinaus kann, kann man sich einen einen Ordner anlegen und darin eine .htaccess ablegen, in der die einzige Zeile

                    Deny from All
                    

                    steht. Der Inhalt eines solchen Ordners ist via Web nicht zugänglich, nur für Scripte, die auf dem Server laufen. Wenn die dann den Ordnerinhalt verpetzen, ist das ein anderes Thema.

                    Rolf

                    --
                    sumpsi - posui - obstruxi
                    1. Wirkt nicht, wenn AllowOverride nicht oder mit None gesetzt ist. Da wird die .htaccess nämlich ignoriert.

                      Und falls nicht erzeugt der Eintrag Deny from All bei aktuellen Indianern ohne mod_access_compat unangenehme 500er. Also kann man da auch "Huh!" reinschreiben.

                      Die Datei wird freilich im zweiten Fall nicht gezeigt...

                  2. Hallo Martin,

                    In der Defaultkonfiguration vom Apachen ist aber festgelegt, dass Dateien, die mit ".ht" beginnen, über HTTP nicht erreichbar sind.

                    Gilt dies auch für Nicht-Apache-Konfigurationen? Gilt dies nur für Dateien oder auch für Verzeichnisse der Art .htDokumente? Schönen Gruß Bernd

                    1. Hallo Bernd,

                      In der Defaultkonfiguration vom Apachen ist aber festgelegt, dass Dateien, die mit ".ht" beginnen, über HTTP nicht erreichbar sind.

                      Gilt dies auch für Nicht-Apache-Konfigurationen?

                      das weiß ich nicht. Was käme denn da in Frage? IIS - da würde ich auf die Expertise von @Rolf B warten und vertrauen. Oder nginx? Da wüsste ich nicht, wer sich damit richtig gut auskennt.

                      Gilt dies nur für Dateien oder auch für Verzeichnisse der Art .htDokumente?

                      Apache macht da (gemäß der Unix-Philosophie "everything is a file") keinen Unterschied. Also: Ja, auch für Verzeichnisse.

                      Einen schönen Tag noch
                       Martin

                      --
                      Мир для України.
                      1. Hallo Martin,

                        da der IIS keine .ht* Dateien für eigene Zwecke verwendet, blendet er die auch nicht aus. Da gibt's eher die web.config

                        Dafür kann man "hidden segments" definieren, also Dateien oder Ordner die nicht sichtbar sind.

                        Und eine Datei, für die kein Mime-Typ definiert ist, wird vom IIS ohnehin nicht ausgeliefert.

                        Rolf

                        --
                        sumpsi - posui - obstruxi
                    2. Hallo Martin,

                      In der Defaultkonfiguration vom Apachen ist aber festgelegt, dass Dateien, die mit ".ht" beginnen, über HTTP nicht erreichbar sind.

                      Gilt dies auch für Nicht-Apache-Konfigurationen?

                      Nein. Andere Server wie IIS oder NGINX haben da andere Mechanismen. Wer NGINX bucht oder betreibt weiß aber (wahrscheinlicher), was er tut (als Kunden von Massenhostern).

                      1. Hallo Martin,

                        In der Defaultkonfiguration vom Apachen ist aber festgelegt, dass Dateien, die mit ".ht" beginnen, über HTTP nicht erreichbar sind.

                        Gilt dies auch für Nicht-Apache-Konfigurationen?

                        Nein. Andere Server wie IIS oder NGINX haben da andere Mechanismen. Wer NGINX bucht oder betreibt weiß aber (wahrscheinlicher), was er tut (als Kunden von Massenhostern).

                        Das hieße ja, dass man bei einem Providerwechsel möglicherweise einiges ändern müsste.
                        Kann man selbst herausfinden, ob man mit dem Apache oder einem anderen System arbeitet, oder muss man beim Provider anfragen?

                        1. Das hieße ja, dass man bei einem Providerwechsel möglicherweise einiges ändern müsste.

                          1. Die Wahrscheinlichkeit, „blind“ einen (Massen)Hoster zu finden, der nicht den Apache verwendet, ist sehr gering. Den IIS verwendet keiner mehr und die Verwendung des NGINX würde wohl explizit beworben (um sich vom Wettbewerb abzugrenzen).

                          2. Man muss bei einem Providerwechsel sowieso genau prüfen, ob und was man ändern muss.

                          Kann man selbst herausfinden, ob man mit dem Apache oder einem anderen System arbeitet,

                          Ja. Ganz einfach und auf sehr viele verschiedene Weisen. Das ist sogar aus der Entfernung möglich. Aber wozu hat der Hoster einen Kundendienst?

          2. Lieber Gerhard,

            ich werde es versuchen, obwohl ich mit der objektorientierten Programmierung noch nichts am Hut hatte.

            wie kommst Du voran?

            Liebe Grüße

            Felix Riesterer

            1. Lieber Felix,
              danke der Nachfrage.
              Ich habe erst sortiert, was ich aus diesem thread (gedanklich und real) verwenden kann.
              Ich werde erst in den nächsten Tagen dazu kommen, die Realisierung anzugehen. Ich denke, dass ich mich dann noch mit Fragen oder einem Dankeschön melden werde.
              Gruß
              Gerhard

        2. Hallo Felix,
          jetzt habe ich Dein Muster angepasst.
          Das Programm läuft durch bis vor dem $mail->send(); Und dann ca. 5 Minuten nichts bis zur Meldung

          Gateway Timeout
          The gateway did not receive a timely response from the upstream server or application.

          Hast Du eine Idee, woran dies liegen könnte?

          1. Hallo Gerhard,

            jetzt habe ich Dein Muster angepasst.
            Das Programm läuft durch bis vor dem $mail->send();
            Und dann ca. 5 Minuten nichts bis zur Meldung

            Gateway Timeout
            The gateway did not receive a timely response from the upstream server or application.

            das liest sich für mich so, als dürftest du bei deinem Webhoster "fremde" Server nicht direkt ansprechen, sondern der Hoster hat dafür einen Zwangs-Proxy eingerichtet, der nicht das tut, was du erwartest.

            Die üblichen Verdächtigen hast du wahrscheinlich schon zwei- bis dreimal überprüft:

            • SMTP-Hostname richtig?
            • SMTP-Port richtig?
            • Benutzername und Kennwort richtig?
            • Verschlüsselung richtig (meist mit STARTTLS)?

            Diese Angaben müsstest du vom Anbieter deines e-Mail-Postfachs bekommen, und du brauchst sie ja auch, um ein lokales e-Mail-Programm einzurichten (Outlook, Thunderbird oder ähnliche).

            Hast Du eine Idee, woran dies liegen könnte?

            Ich habe zunächst mal keine. Da müsste man jetzt tiefer ins Geschehen eindringen, z.B. wie deine Infrastruktur genau aussieht. Eventuell könnte es helfen, wenn du deinen Webhoster und den gebuchten Tarif nennst, und ebenso den e-Mail-Anbieter, den du nutzen möchtest.

            Einen schönen Tag noch
             Martin

            --
            Мир для України.
            1. Hallo, ich habe die Angaben noch einmal überprüft.
              Der einzige Unterschied und hoffentlich die Ursache ist die Angabe im Programm:
              $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;

              und in der Beschreibung des Hosters
              Verbindungssicherheit: SSL/TLS

              Ein entsprechendes ENCRYPTION_... habe ich nicht gefunden.

              1. Lieber Gerhard,

                $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;

                und in der Beschreibung des Hosters
                Verbindungssicherheit: SSL/TLS

                Ein entsprechendes ENCRYPTION_... habe ich nicht gefunden.

                in den offiziellen Quellen lese ich das hier:

                //Set the encryption mechanism to use:
                // - SMTPS (implicit TLS on port 465) or
                // - STARTTLS (explicit TLS on port 587)
                $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
                

                Du kannst beide Option ausprobieren. Wenn beide nicht zum Erfolg führen, frage bei Deinem Support explizit nach dieser zitierten Sachlage.

                Liebe Grüße

                Felix Riesterer

                1. Ab Zeile 51 der PHPMailer.php:

                      const ENCRYPTION_STARTTLS = 'tls';
                      const ENCRYPTION_SMTPS = 'ssl';
                  

                  In ältere Versionen der Doku hat man den String ( also 'tls' oder 'ssl') noch direkt angegeben.

                  An Gewissheit grenzende Vermutung aus der Angabe des Hosters „Verbindungssicherheit: SSL/TLS“

                  $mail->SMTPSecure = PHPMailer::ENCRYPTION_TLS;
                  

                  denn just 'tls' wird oft als 'SSL/TLS' bezeichnet (wohl damit Leuten mit älterem Wissen klar ist, wozu dieses 'TLS' wohl gut sei. Dabei brauchen vor allem die nicht wissenden klarere Ansagen…)

                2. @Felix & Raketenwilli

                  Hallo, kleine Ursache, große Wirkung!
                  In dem Beispiel von Felix
                  fehlt die Angabe von
                  const ENCRYPTION_STARTTLS = 'tls';
                  bzw.
                  const ENCRYPTION_SMTPS = 'ssl';

                  Jetzt funktioniert es - und nicht im Junk-Ordner.
                  Danke für die geduldsame Hilfe!

                  1. Dann sende Dir mal ein Mail mit

                    "Jetzt fünktionört es"

                    Ich wette, Dir fehlt noch:

                        $mail->CharSet   = 'UTF-8';
                        $mail->Encoding  = 'base64';
                    

                    Übrigens, zu ssl bzw. tls: 21. März.

                    1. Wette verloren!
                      "Nachricht über das Kontaktformular" ist richtig angekommen.

                    2. Hallo,

                      Ich wette, Dir fehlt noch:

                          $mail->CharSet   = 'UTF-8';
                          $mail->Encoding  = 'base64';
                      

                      die Codierungsangabe ist sicher eine gute Idee. Aber warum sollte man den Textteil (egal ob Plain oder HTML) in base64 codieren wollen? Erstens bläht das die Datenmenge um 1/3 auf, zweitens ist das ein PITA, wenn man mal im Quelltext irgendwas nachsehen will (z.B. einen Link, den der Absender aus Versehen verstümmelt hat, aus dem Quelltext holen). Da ist Quoted-Printable zumindest bei westlichen Sprachen die bessere Wahl.
                      Outlook macht so'n Quatsch mit base64, und ich habe auch noch nicht gefunden, wie man ihm das austreiben kann.

                      Für nicht-textbasierte Anhänge (z.B. Bilder, PDF, zip-Archive) ist base64 allerdings goldrichtig.

                      Einen schönen Tag noch
                       Martin

                      --
                      Мир для України.
                      1. Aber warum sollte man den Textteil (egal ob Plain oder HTML) in base64 codieren wollen?

                        Weil sich dadurch gleich ein uraltes Problem mit in Luft auflöst: "\r\n.\r\n" (Ein Punkt in einer sonst leeren Zeile) beendet laut SMTP-Protokoll das Mail.

                        base64-codiert ist der Punkt in einer sonst leeren Zeile einfach mal weg.

                        Erstens bläht das die Datenmenge um 1/3 auf,

                        Klar. Aber Du weißt schon, dass anno 2022 die Mailserver nicht mehr per Modem kommunizieren und dass jedes angehängte Firmenlogo weitaus mehr Speicher verjubelt, dass HTML-Mails...

                        1. Hallo,

                          Aber warum sollte man den Textteil (egal ob Plain oder HTML) in base64 codieren wollen?

                          Weil sich dadurch gleich ein uraltes Problem mit in Luft auflöst: "\r\n.\r\n" (Ein Punkt in einer sonst leeren Zeile) beendet laut SMTP-Protokoll das Mail.

                          ja, das weiß ich. Aber kommt das in der wirklichen Welt vor? - Also in meiner nicht.

                          base64-codiert ist der Punkt in einer sonst leeren Zeile einfach mal weg.

                          Ja. Mit allen anderen genannten Nachteilen.

                          Erstens bläht das die Datenmenge um 1/3 auf,

                          Klar. Aber Du weißt schon, dass anno 2022 die Mailserver nicht mehr per Modem kommunizieren und dass jedes angehängte Firmenlogo weitaus mehr Speicher verjubelt, dass HTML-Mails...

                          Klar. Aber irgendwo muss man ja mal anfangen.

                          Einen schönen Tag noch
                           Martin

                          --
                          Мир для України.
                          1. Hallo,

                            Aber warum sollte man den Textteil (egal ob Plain oder HTML) in base64 codieren wollen?

                            Weil sich dadurch gleich ein uraltes Problem mit in Luft auflöst: "\r\n.\r\n" (Ein Punkt in einer sonst leeren Zeile) beendet laut SMTP-Protokoll das Mail.

                            ja, das weiß ich. Aber kommt das in der wirklichen Welt vor? - Also in meiner nicht.

                            Mindestens „mailx“ (klassischer Unix/Linux-Client) macht das genau so:

                            fastix@raspi4:~ $ mail fastix
                            Subject: Hallo
                            Welt
                            .
                            Cc: 
                            
                            

                            (Ich kann auch ein Foto davon machen... oder das als Film aufzeichnen)

                            Wahrscheinlich sind die von Dir benutzten User-Agenten einfach mal so freundlich, "\r\n.\r\n" z.B. durch "\r\n. \r\n" zu ersetzen. Irgendwo hab ich mal gelesen, dass ein, eifrig um einzelne Bytes bemühter Entwickler den Text in Zeilen zerlegte, diese dann getrimmt, hernach zusammengefügt hat - und so einen überraschenden Misserfolg feierte...

                            1. Hi,

                              (Ein Punkt in einer sonst leeren Zeile) beendet laut SMTP-Protokoll das Mail.

                              ja, das weiß ich. Aber kommt das in der wirklichen Welt vor? - Also in meiner nicht.

                              Mindestens „mailx“ (klassischer Unix/Linux-Client) macht das genau so:

                              du hast mich nicht verstanden. Ich meinte: Eine Zeile, die nur einen Punkt enthält, kommt in einer realen Kommunikation nicht vor und ist deshalb als Ende-Marker völlig problemlos.

                              Wahrscheinlich sind die von Dir benutzten User-Agenten einfach mal so freundlich, "\r\n.\r\n" z.B. durch "\r\n. \r\n" zu ersetzen.

                              Vielleicht sind sie das. Aber der Fall kommt in meiner Realität nicht vor. Wieso auch?

                              Einen schönen Tag noch
                               Martin

                              --
                              Мир для України.
                              1. du hast mich nicht verstanden. Ich meinte: Eine Zeile, die nur einen Punkt enthält, kommt in einer realen Kommunikation nicht vor und ist deshalb als Ende-Marker völlig problemlos.

                                SMTP-Protokoll, Problem 2:

                                Maximale Länge einer Zeile im Payload (Text): 998 Bytes (eigentlich 1000, da sind aber "\r\n" eingeschlossen.)

                                Es wird also ggf. auch automatisch umgebrochen.

                                Ergo: Solche Zeilen ("\r\n.\r\n") können auch rein zufällig entstehen. Übrigens steht dazu auch was im Quelltext vom PHPMailer…

                                1. Hallo,

                                  du hast mich nicht verstanden. Ich meinte: Eine Zeile, die nur einen Punkt enthält, kommt in einer realen Kommunikation nicht vor und ist deshalb als Ende-Marker völlig problemlos.

                                  SMTP-Protokoll, Problem 2:

                                  Maximale Länge einer Zeile im Payload (Text): 998 Bytes (eigentlich 1000, da sind aber "\r\n" eingeschlossen.)

                                  willst du provozieren, oder dich dumm stellen, oder weißt du es wirklich nicht?

                                  Es wird also ggf. auch automatisch umgebrochen.

                                  Genau. Und das kann man ungestraft und ohne Einfluss auf die Nutzdaten tun, wenn man den erzwungenen Umbruch (gemäß SMTP-Spec übrigens nicht \r\n, sondern nur \r) mit einem Istgleich-Zeichen am Ende der Zeile maskiert. So funktioniert das bei Quoted-Printable.

                                  [ADD]Echte Zeilenumbrüche in den Nutzdaten werden übrigens ebenso wie Byte-Werte oberhalb von 0x80 mit einem Istgleich-Zeichen gefolgt vom Hex-Code dargestellt, also beispielsweise =0D=0A. Also ähnlich wie beim Percent-Encoding in URLs, nur dass das Escape-Zeichen hier das Istgleich-Zeichen ist.[/ADD]

                                  Ergo: Solche Zeilen ("\r\n.\r\n") können auch rein zufällig entstehen.

                                  Nein, die muss man mutwillig konstruieren. Und wenn sie wirklich mal zufällig entstehen, werden sie maskiert (=2E).

                                  Einen schönen Tag noch
                                   Martin

                                  --
                                  Мир для України.
                                  1. https://datatracker.ietf.org/doc/html/rfc5321#section-2.3.9

                                    führt zu:

                                    https://datatracker.ietf.org/doc/html/rfc2045#section-2.7

                                    2.7.  7bit Data
                                    
                                       "7bit data" refers to data that is all represented as relatively
                                       short lines with 998 octets or less between CRLF line separation
                                       sequences [RFC-821].  No octets with decimal values greater than 127
                                       are allowed and neither are NULs (octets with decimal value 0).  CR
                                       (decimal value 13) and LF (decimal value 10) octets only occur as
                                       part of CRLF line separation sequences.
                                    
                                    
                                    2.8.  8bit Data
                                    
                                       "8bit data" refers to data that is all represented as relatively
                                       short lines with 998 octets or less between CRLF line separation
                                       sequences [RFC-821]), but octets with decimal values greater than 127
                                       may be used.  As with "7bit data" CR and LF octets only occur as part
                                       of CRLF line separation sequences and no NULs are allowed.
                                    
                                    

                                    2.10.  Lines
                                    
                                       "Lines" are defined as sequences of octets separated by a CRLF
                                       sequences.  This is consistent with both RFC 821 and RFC 822.
                                       "Lines" only refers to a unit of data in a message, which may or may
                                       not correspond to something that is actually displayed by a user
                                       agent.
                                    

                                    RFC 2821 führt zu RFC 2048, die zu RFC 2049 führt…

                                    https://datatracker.ietf.org/doc/html/rfc2049#section-3

                                    3. Guidelines for Sending Email Data
                                    …
                                    
                                    (3) Many systems may elect to represent and store text data
                                              using local newline conventions.  Local newline
                                              conventions may not match the RFC822 CRLF convention --
                                              systems are known that use plain CR, plain LF, CRLF, or
                                              counted records.  The result is that isolated CR and LF
                                              characters are not well tolerated in general; they may
                                              be lost or converted to delimiters on some systems, and
                                              hence must not be relied on.
                                    

                                    Auszug: „The result is that isolated CR and LF characters are not well tolerated in general“

                                    ... „das they may … converted to delimiters on some systems“ hab ich mit Outlook-Clients durch… die machen aus jedem <CR> oder <LF> beim Antworten immer <CRLF>, was ziemlich lustig ist, weil beim gegenseitigen Antworten dadurch wachsende Leerräume enstehen.

                                    Du schreibst jetzt:

                                    wenn man den erzwungenen Umbruch (gemäß SMTP-Spec übrigens nicht \r\n, sondern nur \r) mit einem Backslash am Ende der Zeile maskiert.

                                    "\r" wäre jetzt doch <CR>. Ich glaube Du verwirrst mich und kannst mir sicher zeigen, wo das mit dem erzwungenem Umbruch als gültige Lösung steht.

                                    1. Hallo,

                                      wir haben hier gerade das Problem, dass du schneller antwortest, als ich meine einmal gegebene Antwort dann doch nochmal überdenke und revidiere.

                                      3. Guidelines for Sending Email Data
                                      …
                                      
                                      (3) Many systems may elect to represent and store text data
                                                using local newline conventions.  Local newline
                                                conventions may not match the RFC822 CRLF convention --
                                                systems are known that use plain CR, plain LF, CRLF, or
                                                counted records.  The result is that isolated CR and LF
                                                characters are not well tolerated in general; they may
                                                be lost or converted to delimiters on some systems, and
                                                hence must not be relied on.
                                      

                                      Auszug: „The result is that isolated CR and LF characters are not well tolerated in general“

                                      Wie gut einzeln auftretende CR und LF wirklich ankommen, dazu habe ich keine Informationen.

                                      Du schreibst jetzt:

                                      wenn man den erzwungenen Umbruch (gemäß SMTP-Spec übrigens nicht \r\n, sondern nur \r) mit einem Backslash am Ende der Zeile maskiert.

                                      Ja. das musste ich nochmal editieren. Das Escape-Zeichen in Quoted-Printable ist nicht der Backslash, sondern das =.

                                      "\r" wäre jetzt doch <CR>. Ich glaube Du verwirrst mich und kannst mir sicher zeigen, wo das mit dem erzwungenem Umbruch als gültige Lösung steht.

                                      Nein. Aber ich würde ich bitten, mal ein paar empfangene Mails im Quellcode anzuschauen. Du wirst feststellen, dass lange Absätze ohne eigenen Umbruch irgendwo (vermutlich nach 998 Zeichen oder kurz davor, in der Praxis meist viel, viel weniger) zwangsweise mit einem Blank und einem Istgleich-Zeichen enden, wobei letzteres den nachfolgenden Zeilenumbruch maskiert.

                                      Einen schönen Tag noch
                                       Martin

                                      --
                                      Мир для України.
                                      1. wir haben hier gerade das Problem, dass du schneller antwortest, als ich meine einmal gegebene Antwort dann doch nochmal überdenke und revidiere.

                                        Was glaubst Du, wo ich meine(n) Spitzname(n) her habe? 😀

                                        Aber ich würde ich bitten, mal ein paar empfangene Mails im Quellcode anzuschauen. Du wirst feststellen, dass lange Absätze ohne eigenen Umbruch irgendwo (vermutlich nach 998 Zeichen oder kurz davor) zwangsweise mit einem Blank und einem Istgleich-Zeichen enden, wobei letzteres den nachfolgenden Zeilenumbruch maskiert.

                                        Kann ich machen. Das ist dann aber eine Maskierung nach „Quoted-Printable“ die gerade dazu gedacht ist, auch die nicht bedachten Widrigkeiten der SMTP-Specs zu umgehen. Base64 haut in die selbe Kerbe und verliert übrigens den Horror des Aufblähens gegenüber „Quoted-Printable“ wenn sich Araber, Chinesen, Koreaner, ... gegenseitig in der Landesschriftsprache schreiben und dabei nicht irgendwelche ASCII-Art verwenden.

                                        1. Hi,

                                          wir haben hier gerade das Problem, dass du schneller antwortest, als ich meine einmal gegebene Antwort dann doch nochmal überdenke und revidiere.

                                          Was glaubst Du, wo ich meine(n) Spitzname(n) her habe? 😀

                                          I begin to understand.

                                          Aber ich würde ich bitten, mal ein paar empfangene Mails im Quellcode anzuschauen. Du wirst feststellen, dass lange Absätze ohne eigenen Umbruch irgendwo (vermutlich nach 998 Zeichen oder kurz davor) zwangsweise mit einem Blank und einem Istgleich-Zeichen enden, wobei letzteres den nachfolgenden Zeilenumbruch maskiert.

                                          Kann ich machen. Das ist dann aber eine Maskierung nach „Quoted-Printable“

                                          Natürlich, darum ging es mir ja gerade. Hier in Europa ist das IMO die sinnvollste und auch die am häufigsten verwendete Transfer-Codierung für reinen Text.

                                          Base64 haut in die selbe Kerbe und verliert übrigens den Horror des Aufblähens gegenüber „Quoted-Printable“ wenn sich Araber, Chinesen, Koreaner, ... gegenseitig in der Landesschriftsprache schreiben und dabei nicht irgendwelche ASCII-Art verwenden.

                                          Ja, ich weiß, Quoted-Printable ist nur effizient bei Sprachen, die überwiegend ASCII-Zeichen verwenden. Deswegen schrieb ich ja schon früher am Tage "zumindest bei westlichen Sprachen". Meine e-Mail-Korrespondenz findet überwiegend in Deutsch, teilweise in Englisch, und ein bisschen in Niederländisch statt. Da passt das ganz gut.
                                          In Griechisch, Kyrillisch, Hebräisch, Arabisch oder sämtlichen asiatischen Sprachen sieht das wieder ganz anders aus. Da ist Quoted-Printable überwiegend "aus-eins-mach-drei" und steht daher base64 kaum nach.

                                          Einen schönen Tag noch
                                           Martin

                                          --
                                          Мир для України.
          2. Gateway Timeout The gateway did not receive a timely response from the upstream server or application.

            Du hast versucht Datenpakete (für den TCP-Verbindungsaufbau) an einen Server und dort an einen bestimmten Port zu versenden. Nach dem Standard-Timeout von 300 Sekunden (5 Minuten) kam keine Reaktion des Servers. Diese Datenpakete wurden also nicht angenommen. Fazit: Die Kombination aus Server und Port stimmt nicht oder ist aus anderen Gründen von Deinem Webserver aus nicht erreichbar (Siehe unten, Strato, Firewall)

            Also ein Konfigurationsfehler.

            1. Hier mal ein Beispiel dafür, wie Strato das beschreibt:

            https://www.strato.de/faq/mail/e-mail-versand-aus-cgi-und-php-skripten/

            1. Beispiel IONOS:

            https://www.ionos.de/hilfe/e-mail/allgemeine-themen/serverinformationen-fuer-imap-pop-und-smtp/

            Ähnliche Seiten hat wohl wirklich jeder Hoster. Du musst diese beachten oder den Kundendienst fragen - oder daran denken, was ich Dir geschrieben habe:

            • Was hast Du von wo aus versucht?

            Zeige Deine Konfiguration (ohne Benutzer und Passwort) und teile uns mit, wo das laufen sollte.

            • Es ist für Dich selbst nicht hilfreich, wenn Du diese wiederholt gestellte Anforderung missachtest.

            Wenn Du mit der womöglich zu komplizierten / für Dich nicht aussagekräftigen Beschreibung Deines Hosters nicht klar kommst, dann teile uns auch die Adresse der Beschreibung mit. Dann erfährst Du hier, wie man das Zeug lesen muss.

            1. Die Beschreibung des Hosters ist schon klar und eindeutig.
              Den Domainnamen darf ich hier nicht veröffentlichen.

              1. Da mail() auf dem Webserver offenbar ging (sonst könntest Du Dich nicht über die Erkennung als „Junk“ beschweren) sollte der PHP-Mailer auch mit dem, auf dem Webserver laufenden und vom Hoster offensichtlich korrekt konfiguriertem sendmail funktionieren:

                <?php
                use PHPMailer\PHPMailer\PHPMailer;
                // use PHPMailer\PHPMailer\SMTP;
                use PHPMailer\PHPMailer\Exception;
                
                // Klasse(n) laden
                require __DIR__ . '/PHPMailer/src/Exception.php';
                require __DIR__ . '/PHPMailer/src/PHPMailer.php';
                // require 'path/to/PHPMailer/src/SMTP.php';
                
                //Create an instance; passing `true` enables exceptions
                $mail = new PHPMailer(true);
                
                
                try {
                    $mail->isSendmail();
                    $mail->ContentType = PHPMailer::CONTENT_TYPE_PLAINTEXT;
                    $mail->CharSet   = 'UTF-8';
                    $mail->Encoding  = 'base64';
                    ### Beachte den Hinweis unten: 
                    $mail->setFrom( 'user@host', 'Mein Name' );
                    ###
                    $mail->addReplyTo( 'user@host', 'Mein Name' );
                    $mail->addAddress( 'user@host', 'Mein Name' );
                    $mail->Subject = 'Test mit PHPMailer via sendmail';
                    $mail->Body = "Hallo!\r\nDas ist nur ein Test.";
                    $mail->send();
                } catch ( phpmailerException $e ) {
                     echo "Das Mail konnte nicht verschickt werden. Der Admin wurde benachrichtigt.";
                     trigger_error( $mail->ErrorInfo,   E_USER_NOTICE );
                     trigger_error( $e->errorMessage(), E_USER_ERROR );
                }
                ?>
                Fertig.
                
                

                Das Problem mit der Spamerkennung und Deine weiteren Probleme mit der Konfiguration kann niemand für Dich lösen, da deren Ursachen ja geheim sind.

                Womöglich (wahrscheinlich) kannst Du diese Zeile nicht mit beliebigem Inhalt verwenden, weil womöglich/regelmäßig Dein Hoster dort etwas einsetzt oder bestimmte Werte erwartet:

                $mail->setFrom( 'von_wem@example.com', 'Vorname Nachname' );
                
                • Sollte diese Zeile also Probleme machen, dann weiß der Kundendienst des Hosters die Antwort.
                • Wichtig: Das wird auf Deiner Windows-Kiste mit XAMPP vorhersehbar NICHT funktionieren, denn ich denke, dass Du Mercurry Mail auch nicht richtig eingerichtet hast.
                • Das obige Skript hat soeben mit korrekten Werten funktioniert: „user@host“ sowie „Mein Name“ müssen natürlich ordentlich drin stehen.
                • Das Mail kam auf meinem Google-Account sauber an, es wurde nicht als Spam/Junk eingestuft.
                • __DIR__
  4. Moin,
    vor längerer Zeit hatte ich das gleiche Problem.
    Mein Kontaktformular (verschickt mit mail()) hat mindestens 10 Jahre einwandfrei funktioniert.
    Dann plötzlich nicht mehr. Ich vermute, dass es mit den neuen Sicherheitsanforderungen zusammenhängt.
    Leider bin ich nicht mehr fit in der Materie und Zeit habe ich auch nicht. Daher habe ich das Kontaktformular entfernt.

    1. Servus!

      Moin,
      vor längerer Zeit hatte ich das gleiche Problem.
      Mein Kontaktformular (verschickt mit mail()) hat mindestens 10 Jahre einwandfrei funktioniert.
      Dann plötzlich nicht mehr. Ich vermute, dass es mit den neuen Sicherheitsanforderungen zusammenhängt.

      Und genau da setzte @Felix Riesterer mit seinem Vorschlag an, einen Formmailer einzubinden, der von anderen aktuell gehalten wird.

      Leider bin ich nicht mehr fit in der Materie und Zeit habe ich auch nicht. Daher habe ich das Kontaktformular entfernt.

      Auch eine Lösung.

      Herzliche Grüße

      Matthias Scharwies

      --
      Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
      1. Dann plötzlich nicht mehr. Ich vermute, dass es mit den neuen Sicherheitsanforderungen zusammenhängt.

        Und genau da setzte @Felix Riesterer mit seinem Vorschlag an, einen Formmailer einzubinden, der von anderen aktuell gehalten wird.

        Gilt das für die mail()-Funktion von PHP, und die dahinter stehenden postfix, exim & Co. etwa nicht? Ein Konfigurationsproblem ist ein Konfigurationsproblem, bleibt ein Konfigurationsproblem.

        Ich hab schon mal geschrieben was zu tun ist.

        1. Moin,
          der Erfolg von Gerhard hat mich animiert, doch es jetzt mit dem PHPMailer zu versuchen.
          Viele haben doch noch keine mail-Adresse und wollen uns trotzdem kontaktieren.

          Bei einem Provider gilt
          Port: 587
          Verbindungssicherheit: STARTTLS

          bei dem anderen
          Port: 465
          Verbindungssicherheit: SSL/TLS

          Verstehe ich es richtig, dass im ersten Fall die Konstante ENCRYPTION_STARTTLS = 'tls';
          und im Zweiten Fall
          ENCRYPTION_SMTPS = 'ssl';
          zu verwenden ist?

          Mit diesen Einstellungen habe ich im ersten Fall den Fehler

          Failed to connect to server: Connection refused (111)

          bekommen. Laut Github kann dies leider wieder die unterschiedlichsten Ursachen haben!

          Gruß Jasper

          1. Verstehe ich es richtig,

            Ja. An diesem Beitrag ist auch ziemlich wenig misszuverstehen:

            https://forum.selfhtml.org/self/2022/mar/18/mail-lundet-im-junk-ordner/1797530#m1797530

            Failed to connect to server: Connection refused (111)

            Das ist jetzt eine zurückgewiesene Verbindung. Der Servername stimmt. Der Port auch. An der Stelle stellt sich die Frage, wie Du den Rest konfiguriert hast.

            Wird gerne vergessen:

            $mail->SMTPAuth = true; 
            

            wenn es das nicht ist, nenn den Hoster der Webseite und zeige Deine Konfiguration mit ausge-X-tem Username und Passwort.

            1. Hallo,

              der Hoster ist Netbeat (netbeat.de)

              $mail->isSMTP();

              $mail->Host = 'smtp.xxxxxxxx.de'; $mail->Username = 'xxxxxxxx.de';
              $mail->Password = 'yyyyyyyyyy';
              $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
              $mail->Port = 587;
              $mail->SMTPAuth = true;

              1. Egal welcher Hoster, egal wie. Die SMTP-Verbindung und den Versand auf die Kette zu bekommen, kann fisselig sein. Dir bleibt nichts über, als alle mögliche Variationen (das können viele werden) durchzuspielen, bis es passt. Protokolle, Ports... Clients wie z.B. Thunderbird machen das auch nicht anders.

                1. Hallo,

                  Dir bleibt nichts über, als alle mögliche Variationen (das können viele werden) durchzuspielen, bis es passt. Protokolle, Ports... Clients wie z.B. Thunderbird machen das auch nicht anders.

                  das ist aber ein guter Einwand. Man könnte ja auch einem Client wie etwa T-Bird die lästige Aufgebe des Durchprobierens überlassen, und wenn der Erfolg hatte und die passenden Zugangsparameter gefunden hat, schreibt man die einfach ab.

                  Einen schönen Tag noch
                   Martin

                  --
                  Мир для України.
                  1. Hallo,

                    das ist aber ein guter Einwand. Man könnte ja auch einem Client wie etwa T-Bird die lästige Aufgebe des Durchprobierens überlassen, und wenn der Erfolg hatte und die passenden Zugangsparameter gefunden hat, schreibt man die einfach ab.

                    Das habe ich als allererstes gemacht. Und der Versand mit TB funktioniert einwandfrei.

                    Inzwischen habe ich den Provider kontaktiert. Drei Korrekturvorschläge habe ich erhalten, die alle keine Änderung brachten.

                    1. Drei Korrekturvorschläge habe ich erhalten, die alle keine Änderung brachten.

                      Heisst „keine Änderung“, dass die Fehlermeldung exakt die selbe geblieben ist?

                      Frage: Wie hast Du denn das Passwort notiert? Wenn da „Sonderzeichen“ außerhalb des ASCII-Zeichensatzes (ÄÜÖäüöß) drin sind und Dein Editor die falsche Zeichen-Kodierung verwendet, dann kann es sein, dass das Passwort, welches Du sendest, nicht das Passwort ist, welches Du notiert hast...

                      Im Regelfall: Editor auf UTF-8 stellen. Wenn der das nicht kann: Etwas wie Notepad++ benutzen. Oder das Passwort via SSH-Sitzung und einem Editor (z.B. nano…) auf dem Server setzen.

                      Möglicherweise kannst Du auch selbst eine Mailadresse (wie wäre es mit der berühmten „noreply@example.com“-Adresse ) mit einem langen Passwort aus großen und kleinen Buchstaben und Ziffer, „Sonderzeichen” wie + - * : . ; , / & anlegen und diese für den Mailversand zu benutzen?

                      Versuche auch mal das hier.

                        1. Hallo, damit funktioniert der Versand.

                          1. Hallo,
                            ist diese Methode aber sicher vor dem Junk-Verdacht?
                            Keine Angabe von Passwort nötig?

                            1. ist diese Methode aber sicher vor dem Junk-Verdacht?

                              Es gibt kein Mail, das vor einem Junk-Verdacht sicher ist.

                              Keine Angabe von Passwort nötig?

                              Doch. Um das Skript auf den Server zu legen. Dieses Verfahren ist im Massenhosting absolut üblich. Das auch ist nicht weniger sicher als ein Skript mit Passwort zu verwenden - welches dann auf dem Server rumliegt.

                              1. Hallo, jetzt frageich mich, warum hier mit Eurer Hilfe tagelang versucht wurde, meine Version zum Laufen zu bringen, wenn es eine (genauso gute?) einfachere Lösung gibt?

                                1. Hallo, jetzt frageich mich, warum hier mit Eurer Hilfe tagelang versucht wurde, meine Version zum Laufen zu bringen, wenn es eine (genauso gute?) einfachere Lösung gibt?

                                  Die Frage nach dem „warum“ ist jetzt unmöglich zu beantworten, ohne das ich mir einen neuen Rekord an Negativbewertungen abhole.

                                  Ich wage es trotzdem: Du hast nicht gewusst, dass die gestellte Frage einen Bereich betrifft, in welchem ich über ein ganz ordentliches Wissen verfüge. Und Du hast Dich offensichtlich durch Bewertungen täuschen lassen.

                                  1. Hallo,
                                    ich hatte aber schon wähend dieser Tage nach Beispielen gesucht und
                                    dies
                                    gefunden. Überall wird Benutzer und Passwort angegeben.

                                    1. Das Netz ist voll von Beispielen, die

                                      • niemals funktioniert haben oder
                                      • nicht mehr funktionieren,
                                      • allenfalls unter bestimmten Umständen funktionieren,
                                      • allenfalls unter bestimmten Umständen funktioniert haben,
                                      • sowieso nur unter bestimmten Umständen funktionieren können,
                                      • wenn überhaupt, dann nur unter bestimmten Umständen funktionieren konnten.

                                      „Copy & Paste-Programmieren“ funktioniert deshalb nicht. „Nimm 'ne Libary die andere für Dich pflegen“ hat zwar viele Freunde - kann sich aber auch als „nur bedingt nützlich“ herausstellen. Man muss einfach wissen, was das Zeug tut.

                                      1. Sei mir nicht böse, aber das klingt wie die Geschichte von den Falschfahrern auf der Autobahn.

                                        1. (Du) jetzt frage ich mich, warum hier mit Eurer Hilfe tagelang versucht wurde, meine Version zum Laufen zu bringen, wenn es eine (genauso gute?) einfachere Lösung gibt?

                                          (ich) Ich wage es trotzdem: Du hast nicht gewusst, dass die gestellte Frage einen Bereich betrifft, in welchem ich über ein ganz ordentliches Wissen verfüge. Und Du hast Dich offensichtlich durch Bewertungen täuschen lassen.

                                          (Du) ich hatte aber schon wähend dieser Tage nach Beispielen gesucht

                                          (ich) Das Netz ist voll von Beispielen, die (nicht funktionieren)

                                          (Du) Sei mir nicht böse, aber das klingt wie die Geschichte von den Falschfahrern auf der Autobahn.

                                          Ah ja. Nur wie kommst Du auf DEN Vergleich? Soweit hier im Thread nachzulesen ist waren meine Ratschläge jeweils zielführend - und wer den von mir gesetzten Wegweisern nicht folgte hat die falschen Auffahrten genommen. Wie schon geschrieben liegt das Thema auf einem Gebiet, auf dem ich mich sehr gut auskenne. Ich brauche hier kein Google oder Google-Maps - um auf Deinen Vergleich zurück zu kommen.

                                          Übrigens: Ich nutze nicht solche sondern betreibe selbst u.a. auch Mailserver: konkret exim4 und dovecot.

                              2. Keine Angabe von Passwort nötig?

                                Doch. Um das Skript auf den Server zu legen. Dieses Verfahren ist im Massenhosting absolut üblich. Das auch ist nicht weniger sicher als ein Skript mit Passwort zu verwenden - welches dann auf dem Server rumliegt.

                                Das FTP-Passwort liegt dann beim Anwender herum. Ob der sorgsam damit umgeht, ist eine andere Frage.
                                Und ein zusätzliches Passwort im Server bietet doch eine zusätzliche Sicherheit. Man muss dieses ja nicht in das Programm hineinschreiben.

                                1. Das FTP-Passwort liegt dann beim Anwender herum.

                                  1. Wenn schon, dann FTPS oder SSH. (Für das Betreiben eines FTP-Servers mit Klartextpassword wird man erst nach Russland verbannt und dann in der Ukraine mitsamst T72 gesprengt.)

                                  2. Das tut es so und so. (Wie kommt denn sonst Deine Datei mit dem SMTP-Passwort auf den Server?)

                                  3. Ganz wichtig: Besser Du streitest Dich über Sachen, von denen Du mehr verstehst als die Person, deren Aussagen Du diskreditieren willst… sonst verschlimmern sich erst Minderwertigkeitsgefühle und sodann narzistische Verhaltensweisen.

                                  1. Ja, allmächtiger Herr Raketenwilli,
                                    Ihr Wissen ist umfassend, alle Beispiele im Netz, die nicht von Ihnen sind, sind falsch.
                                    Ihr Wille geschehe, ich halte mich zurück und verlasse diesen Thread.

                                  2. Hallo Raketenwilli,

                                    Ganz wichtig: Besser Du streitest Dich über Sachen, von denen Du mehr verstehst als die Person, deren Aussagen Du diskreditieren willst… sonst verschlimmern sich erst Minderwertigkeitsgefühle und sodann narzistische Verhaltensweisen.

                                    Ich sehe im Stellen von Rückfragen - oder im Darstellen abweichender Meinungen - den Vorwurf der Diskreditierung (=Glaubwürdigkeit beschädigen) nicht gegeben. Es kam keine Andeutung von "du hast doch keine Ahnung" in Gerhards Post 'rüber, nur "ich seh das anders". Dieses Recht steht ihm zu. Mit allen +/- Konsequenzen, natürlich.

                                    So ist es nun einer für die Akte: 1000 Ways To Piss Your Customer Royally Off. Schade.

                                    Rolf

                                    --
                                    sumpsi - posui - obstruxi
                                    1. Es kam keine Andeutung von "du hast doch keine Ahnung" in Gerhards Post 'rüber,

                                      Soso. Zitat von anderer Stelle:

                                      Gerhard: Sei mir nicht böse, aber das klingt wie die Geschichte von den Falschfahrern auf der Autobahn.“

                                      Ich hielt und halte bei derlei Ansagen (und alle seine Äußerungen nach dem Lösen nicht nur seines Problems gingen in die Richtung, vorzumachen, die Lösungen seien unsicher oder untauglich) eine Reaktion für erforderlich.

                                      1. Moin!

                                        Gerhard: Sei mir nicht böse, aber das klingt wie die Geschichte von den Falschfahrern auf der Autobahn.“

                                        Ich hielt und halte bei derlei Ansagen (und alle seine Äußerungen nach dem Lösen nicht nur seines Problems gingen in die Richtung, vorzumachen, die Lösungen seien unsicher oder untauglich) eine Reaktion für erforderlich.

                                        Die Äußerung von Gerhard halte ich durchaus verständlich, wenn er im Internet, ich weiß nicht wieviele, Beispiele findet, wie sie Felix vorgeschlagen hat und nur ein einziges Beispiel hier im Thread, nämlich das, was Du vorgeschlagen hast.
                                        Und ich habe im Thread keinen Beitrag gefunden, der zu Deinem Vorschlag positiv oder negativ Stellung genommen hatte.

                                        1. Und ich habe im Thread keinen Beitrag gefunden, der zu Deinem Vorschlag positiv oder negativ Stellung genommen hatte.

                                          „Gefunden“ wahrlich nicht. Du hast selbst einen geschrieben (Hallo, damit funktioniert der Versand. ist positiv, wenn die anderen Lösungen nicht funktionieren). Oder mit wie vielen Jaspers habe ich es hier zu tun?

                                          Und Gerhards nachgeschobene und viel mehr als Unterstellung zu verstehende „Frage“, ob denn diese Methode aber sicher vor dem Junk-Verdacht sei, fand ich sehr daneben, konkret als „Herumkritteln an einer sauberen und funktionierende Lösung“. Es dürfte ja jedem bekannt sein, dass die Erkennung als Spam durch viele Parameter bedingt wird. Da wäre neben dem Versandweg vor allem der Inhalt zu nennen. Das trifft dann auch auf Gerhards weiteren Unsinn mit dem FTP-Passwort zu, dass statt(sic!) des SMTP-Passwortes auf einem Rechner herumläge. Das war ebenfalls einfach nur „Herumkritteln an einer sauberen und funktionierende Lösung“ - und die zweite negative Äußerung mit falschen behaupteten/unterstellten technischen Hintergrund.

                                          Aber auch Gerhard hatte sich zunächst bedankt (nachdem ich das mit tls vers. ssl erläuterte), weil der Versand nunmehr funktionierte.

                          2. Moin,
                            jetzt funktioniert auch die von Felix präsentierte Variante.
                            Der x-te Vorschlag des Providers hat zum Erfolg geführt.
                            Der Port ist nicht der gleiche wie in der Doku und in meinem funktionierenden Mail-Client!

              2. Lieber Jasper,

                Gerhard hat schon herausgefunden, dass da noch eine dieser beiden Zeilen wichtig ist:

                const ENCRYPTION_STARTTLS = 'tls';
                const ENCRYPTION_SMTPS = 'ssl';
                

                Das bedeutet aber, dass man anstelle einer erst selbst zu definierenden Konstante (warum ist die nicht schon von vornherein definiert...?) auch das hier schreiben könnte:

                $mail->SMTPSecure = 'ssl'; // oder 'tls'
                

                Liebe Grüße

                Felix Riesterer

                1. (warum ist die nicht schon von vornherein definiert...?)

                  Sind sie.

                  1. $mail->SMTPSecure = 'ssl'; // oder 'tls'
                    

                    Kann man so notieren. Soll man aber nicht. Ist ergo absichtlich nicht mehr dokumentiert. Der Programmierer des PHPMailers wollte sich wohl die Abfrage nebst der Fehlermeldung sparen, dass man da etwas falsches eingetragen hat und verweist auf die Konstanten. Gibt man die falsch an, dann hat man bei modernen PHP-Versionen einen Syntaxfehler, bei alten eine Notiz im Error-Log (wegen der Konvertierung der nicht definierten Konstante in einen String) und bei mittelalten außerdem noch einen Missbilligt-Hinweis.

                    Wenn ich jetzt schreiben würde, dass er da einen Konzeptionsfehler hat, bekomme ich ganz sicher ganz viele Minuspunkte, da ja nur Libarys, die von anderen gepflegt werden, was taugen.

                    Deswegen schreibe ich, dass „gut gemeint“ längst nicht immer „gut gemacht“ bedeutet.

    2. Daher habe ich das Kontaktformular entfernt.

      Möglicherweise war und ist das im Hinblick auf den zwischenzeitlichen Missbrauch des DSGVO-Gesetzes durch kriminelle (und inzwischen teilweise(¹) verurteilte sowie aus dem Beruf entfernte) „Rechtsanwälte“ sogar die klügere Lösung.

      Das Mailformular zieht nämlich rein aufgrund seiner technischen Funktion einen ganzen Batzen rechtlicher Verpflichtungen nach sich, die manche schlicht nicht übersehen oder, falls denen diese Pflichten bewusst sind, im Hinblick auf den Aufwand den Kopf in den Sand stecken. Hinzu kommt, dass manche sehr viele mangels technischem Verständnis gar nicht in der Lage sind, vollständige Auskünfte zu geben.

      Verschickt der Betreffende das Mail selbst, ist die Durchleitung durch „seinen” (von ihm selbst gewählten) SMTP (und das Problem der dadurch entstehenden Einträge in Logfiles) dann seine Sache.

      Gerade für KMU muss man also eine Entscheidung nach einer Analyse der Kosten und Risiken sowie des Nutzens treffen.


      ¹) Mindestens ein anderer hat nach meiner Strafanzeige (und weil ich das, auf seinen Ruf bedachte „Organ der Rechtspflege“ öffentlich „durch den Kakau gezogen“ habe) „fast freiwillig“ damit aufgehört.

      1. Dieser Beitrag wurde gelöscht: Der Beitrag ist unkonstruktiv oder provokativ und trägt zu einer Verschlechterung der Stimmung bei.
      2. Es waren in der Spitze 280 Abmahnungen mit rechtswidrigen Kostenforderungen allein an einem Tag. Forderungen insgesamt um die 1700, später 2500 €. Gerechtfertigt wären allenfalls um die 100 Euro gewesen - wenn denn das Ganze nicht aus rein wirtschaftlichen Motiven und nicht seriell (genauer: industriell) betrieben worden wäre (Rechtsmissbrauch). Die Gründe, warum überhaupt eine Situation entstand, in der Abmahnungen an sich ausgesprochen werden konnten, habe ich richtig dargelegt, denn jeder einzelnen dieser Abmahnungen ging die Nutzung eines Kontaktformulars mit der Absicht, später die Auskunftsrechte aus der DSGVO zu verlangen und - selbst dann wenn die Auskunft gegeben wurde - abzumahnen, voraus. Betroffen waren ausschließlich kleine Firmen, Vereine, sogar ein Chor!

        Fakt ist: Hier wurden Schäden in Millionenhöhe vor allem durch mich verhindert. Fakt ist auch: Presse und Staatsanwaltschaften hatten sich des Problems aus wirtschaftlicher Feigheit nicht oder aus Faulheit (zunächst) nicht (angemessen) angenommen. Fakt ist, dass der Anwalt, der damit begann, nicht nur keiner mehr ist, sondern inzwischen im Knast sitzt und dass seine Nachfolger das lieber gelassen haben.

        Freilich darf man es als „schlecht“ bewerten, dass ich das anbringe. Nur wird diese „Bewertung“ natürlich reflektiert. Und zwar nicht nur von mir:

        1. Uninformierte Leser, die auf Grund der Bewertung denken, ich hätte „nur Scheiße gelabert“, können rechtliche Probleme bekommen.
        2. Informierte Leser, die wissen, dass ich keine „Scheiße gelabert“ habe, denken, dass die Bewertungen in diesem Forum nicht verlässlich sind und kommen zwangsläufig zu gewiss keinen positiven Vermutungen über das Forum an sich.
        3. Klar ist das auch (D)ein Versuch, mir die Wortmeldungen zu „emmerdieren“.

        Man kann es also drehen wie man will: Wer auch immer mit derartig niedrig und fachfremd motivierten negativen Bewertungen um sich wirft ist derjenige, welcher der Stimmung und dem Forum an sich schadet. Und da sind wir bei Punkt 3: Ich weiß genau, dass ich das Ausgangsproblem (bei entsprechendem Input) in „nullkommanix“ lösen könnte - und habe also eine „breite Brust“. Und „cojones“ („Eier um zu meinen Aussagen zu stehen“) hab ich auch. Da kannst Du „huevos“ schmeißen wie Du willst.

        Ende der Ansage.

        1. Hallo Raketenwilli,

          wir kennen deine Erfolge gegen Rechtsmissbrauch, und ich stimme Dir auch zu, dass Du stolz drauf sein kannst.

          Trotzdem sind einige hier genervt davon und leiden an den Weihrauchschwaden, die gelegentlich von Dir herüberziehen. Wobei das Leiden - meiner Mutmaßung nach - auch noch durch persönliche Befindlichkeiten aus langer gemeinsamer Historie befördert wird. Eine Historie übrigens, die ich nicht live erlebt habe, ich bin kein Uralt-Selfer.

          Deswegen wäre eine Trennung zwischen "Here Be Law Dragons" und "I Am The Dragon Slayer" ganz nützlich, damit niemandem Chili in alte Wunden gerieben werden. Auf das beständige Rieseln von Minuszeichen und Mod-Meldungen könnte ich ebenfalls gut verzichten.

          Rolf

          --
          sumpsi - posui - obstruxi
          1. Hallo Rolf und Raketenwilli,
            jetzt macht Ihr mir aber richtig Angst!
            Eine meiner Seiten ist meine private Homepage, die andere eines eingetragenen, gemeinnützigen Vereins. Beide sprechen vor allem ältere Personen an, die nicht unbedingt eine email-Adresse haben. Trotzdem würden sie gerne Anfragen und Bitten übermitteln, ohne zum Telefon oder Kugelschreiber greifen zu müssen. Hat dann die Abmahnerei jetzt aufgehört? Falls nicht, kennt Ihr dann eine Anleitung "Sicherheit vor Abmahnungen" für nicht gewerbliche Internet-Auftritte.
            Gruß
            Gerhard

            1. Servus!

              Hallo Rolf und Raketenwilli,
              jetzt macht Ihr mir aber richtig Angst!
              Eine meiner Seiten ist meine private Homepage, die andere eines eingetragenen, gemeinnützigen Vereins.

              Ein Anwalt darf nur abmahnen, wenn er im Auftrag eines Mitbewerbers handelt.[1]

              Bei einem gemeinnützigen Verein dürfte das schwerfallen.

              Ich habe für meine Familie einen Rechtsschutz, der Internet mit einschließt und nicht sehr teuer war; deshalb habe ich in ähnlicher Lage (2 Webseiten für gemeinützige Vereine) wenig Bedenken.

              Herzliche Grüße

              Matthias Scharwies

              --
              Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“

              1. https://www.abmahnung.org/wer-darf-abmahnen/ ↩︎

              1. Hallo Matthias,

                Ein Anwalt darf nur abmahnen, wenn er im Auftrag eines Mitbewerbers handelt.

                schon richtig, aber offensichtlich gab es schon Anwälte, denen das egal war und die stattdessen auf eigene Faust abgemahnt haben. Ein ganz berühmter Vertreter dieser Gattung schaut sich seit einigen Jahren die Radieschen von unten an.

                Aber ich bin sicher, dass es solche Winkeladvokaten auch heute noch gibt.

                Einen schönen Tag noch
                 Martin

                --
                Мир для України.
                1. Servus!

                  Hallo Matthias,

                  Ein Anwalt darf nur abmahnen, wenn er im Auftrag eines Mitbewerbers handelt.

                  schon richtig, aber offensichtlich gab es schon Anwälte, denen das egal war und die stattdessen auf eigene Faust abgemahnt haben.

                  Ich habe für meine Familie einen Rechtsschutz, der Internet mit einschließt und nicht sehr teuer war; deshalb habe ich in ähnlicher Lage (2 Webseiten für gemeinützige Vereine) wenig Bedenken.

                  Und das ist eine Praxis, bei der man mit der Absicherung durch eine Rechtschutz-Versicherung eine solche unbegründete Anmahnung entweder ignorieren oder dagegen vorgehen kann.

                  Ein ganz berühmter Vertreter dieser Gattung schaut sich seit einigen Jahren die Radieschen von unten an.

                  Der hatte da aber schon lange seine Zulassung verloren. [1]

                  Was eben zeigt, dass das Abmahnwesen eben nur ne Zeitlang gut lief.

                  Aber ich bin sicher, dass es solche Winkeladvokaten auch heute noch gibt.

                  Einen schönen Tag noch
                   Martin

                  Herzliche Grüße

                  Matthias Scharwies

                  --
                  Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“

                  1. https://www.welt.de/wirtschaft/webwelt/article2466833/Abmahn-Anwalt-steht-vor-Verlust-der-Zulassung.html ↩︎

                  1. Der hatte da aber schon lange seine Zulassung verloren. [^1]

                    Nein. Das Verfahren lief noch. Den Stellungsbefehl hatte er deutlich schneller.

                    Er hatte sogar - eindeutig rechtswidrig nach einer rechtskräftigen Verurteilung zu mehr als einem Jahr Haft - noch die Bleibeschleunigungsvorrichtung. Der Münchner Waffen-KVR hatte die Einziehung der Waffe ausgesetzt, weil Gravenreuth Widerspruch erhoben hatte. Der Waffen-KVR war allen Ernstes der Meinung, dass dieses die öffentliche Ordnung nicht gefährde. Ich hatte den angeschrieben als Gravereuth - nach Verwerfung seiner Revision, also Rechtskraft der Verurteilung zu 14 Monaten - im Gulli ankündigte, er werde nicht in den Knast gehen und dass er mit der Walter sehr zufrieden sei - so geht „Selbstmordankündigung“ und es bestand die Gefahr eines Mitnahmeselbstmordes (a.k.a. „Amok-Lauf“).

                    Dumm handelnde finden sich auch öffentlichen Ämtern… kein Wunder dass in Bayern sogar psychiatrisch auffällige Personen mit Knarren rumlaufen.

            2. Falls nicht, kennt Ihr dann eine Anleitung "Sicherheit vor Abmahnungen" für nicht gewerbliche Internet-Auftritte.

              Klar. Die Antwort an den Anwalt lautet dann in etwa:

              Ihr mutiges Anschreiben vom XX.XX.XXXX, Aktenzeichen RM12342/2022

              Hallo, Sie Rechtsmissbraucher!

              Die DSGVO gilt ausweislich deren Artikel 2, Absatz 2 Punkt c nicht für das Handeln privater Personen. Ich hab mir - anders als Sie, Herr „Rechtsanwalt“ - das durchgelesen, bevor ich mir damit … Ihr Mandant hat mir bis zum XX.XX.XXXX, um 17:00 hier schriftlich vorliegend, den Rücktritt von den erhobenen Forderungen zu erklären - sonst werde ich tun, was Sie mir angedroht haben - nämlich Ihrem Mandant den Arsch wegklagen.

              Hat der eigentlich Geld? Wurden Sie bezahlt?

              1. Die „Mandanten“ von solchen Rechtsmissbrauchern sind in der Regel insolvente Würstchen. In einem Fall war es sogar mal ein belgischer Obdachlose, der zum Geschäftsführer einer GmbH ohne Umsätze und Vermögen gemacht wurde, die Pokerspieler mit denen “abgesengt“ wurde werden sollte, fallen wohl in ebendiese Kategorie. Grund: Wohnheim- und WG-Adressen.)

                Eine negative Feststellungsklage mag befriedigen ist aber oft „unschlau“, denn man bleibt häufig auf den Kosten sitzen.

                Außerdem: Ich kenne ja wie kaum ein zweiter die Dummheit und die Willkür deutscher „Richter“ und deren erheblichen Widerstand dagegen, Tatsachen wahr zu nehmen und anzuerkennen. Man hat also auch das Risiko, dass eine eindeutige, definitiv zu gewinnende Klage „krass daneben“ geht und dass man wegen der manchmal ausufernden, nicht mehr nachvollziehnbaren Tatsachen- und Rechtsverachtung mancher Richter (hier war es eine Richterin) durch die Instanzen muss.

                Sowas kann einen Jahre beschäftigen.

                Ist aber auch aufregend 😀

              2. Hallo Raketenwilli, Gerhard hatte doch (nach meinem Verständnis) gefragt, wie man das Kontaktformular so realisieren kann dass man keine Abmahnung befürchten muss bzw. man einer solchen beruhigt entgegensehen kann (vielleicht sogar ohne Haftpflichtversicherung). Vielleicht gibt es doch Angaben im Kontaktformular, die man beanstanden kann?

                1. Vielleicht gibt es doch Angaben im Kontaktformular, die man beanstanden kann?

                  Nicht nach der DSGVO wenn es eine private Webseite z.B. über die das fette Leben der eigenen Hauskatzen ist.

                  Achtung: Ein einziges Werbebanner auf der Seite (und sei es, was gar nicht so selten ist, vom Hoster bei einem kostenlosen Hosting eingefügt) führt bei manchen Richtern zu der Anmutung, der Auftritt sei gewerblich! (Allerdings nicht bei allen)

                  „Angaben im Kontaktformular, die man beanstanden kann?“ sind ein „weites Feld“:

                  Man muss sich an die allgemeinen Gesetze halten und kann nicht einfach (mit Klarnamen!) etwas ins Formular setzen wie

                  [x] Stimmen Sie zu, dass H.W. aus D. ein fetter, dummer, versoffener Idiot und *** ist?

                  Das wäre - trotz Frageform - Verleumdung und Beleidigung, üble Nachrede und selbst wenn es stimmt als „Beleidigung trotz Wahrheitsbeweis“ strafbar und ergo abmahnbar. Du siehst hoffentlich: Hier ein Handbuch zu veröffentlichen, auf was man alles aufpassen muss, sprengt jeden Rahmen.

                  Es gibt aber eine Grundregel: An Datensparsamkeit, Anstand und Moral halten. Dann ist man rechtlich eher auf der richtigen Seite.

                  1. Dieser Beitrag wurde gelöscht: Der Beitrag ist unkonstruktiv oder provokativ und trägt zu einer Verschlechterung der Stimmung bei.
                  2. Hallo Raketenwilli,

                    *Moderatorenmütze aufsetz*

                    ich habe die hierauf folgenden Beiträge gelöscht, und in deinem Beitrag ein Wort durch *** ersetzt. Ich nehme an, dass Du das "-" dafür bekommen hast - auch wenn die Bewertungsfunktion dafür explizit nicht gedacht ist. Dieses Vokabular brauchen wir hier nicht.

                    Was aus den gelöschten Beiträgen lesenswert war, sind diese beiden Absätze von Dir:

                    Eine konkrete und dem Medium „Forum“ gerecht werdende Antwort auf die Frage, „wie man das Kontaktformular so realisieren kann dass man keine Abmahnung befürchten muss“ ist wegen der Vielfalt der möglichen Rechtsverstöße völlig unmöglich.

                    Man kann aber ein konkretes Formular prüfen.

                    Rolf

                    --
                    sumpsi - posui - obstruxi
  5. Moderationsinformation zum Thread:

    Ein Beitrag von Raketen* wurde (nicht von mir) gelöscht, weil er - nicht nur - unnötige Aufreger enthielt. In einem weiteren Beitrag hat er deswegen polemisiert. Den Ärger kann ich nachvollziehen, aber ich will Eskalation vermeiden. Deswegen habe ich diesen Teil - ab Gunnars Driftstart - gesperrt.

    Ich bitte, persönliche Befindlichkeiten und Emotion außen vor zu lassen, ganz gleich, wie berechtigt sie erscheinen mögen. Es hilft dem Thema nicht weiter und steigert unnötig den Blutdruck. Das gilt für alle im Thread.

    Es gibt, wie es scheint, unterschiedliche Ansätze, wie man Gerhard helfen könnte, und bei welchem er mitgeht, ist seine Entscheidung. Das ist sicherlich nichts, was personlich gemeint ist, und sich darüber zu zanken, ist unnötig. Ich persönlich bin frei von jeder Ahnung bei diesem Thema und deshalb ganz froh, außen vor zu sein 😉.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo,

      Ein Beitrag von Raketen* wurde (nicht von mir) gelöscht, weil er - nicht nur - unnötige Aufreger enthielt.

      Und m.E. aufgrund eines Missverständnisses geschrieben wurde. Das ist nur eine Vermutung von mir und ich werde darauf auch nicht weiter eingehen…

      Gruß
      Kalk

      1. Ein Beitrag von Raketen* wurde (nicht von mir) gelöscht, weil er - nicht nur - unnötige Aufreger enthielt.

        Und m.E. aufgrund eines Missverständnisses geschrieben wurde.

        Jedes „Missverständnisist ausgeschlossen.

        Sogar dem Titel der gelöschten Nachricht kann Gerhard entnehmen was er tun muss damit ihm überhaupt - von wem und mit welchem Ansatz auch immer - geholfen werden kann. Dann wäre da noch die Sache mit der Hand und dem Reinbeißen.

        1. Lieber Raketenwilli,
          ich habe schon einmal geschrieben, dass meine Kenntnisse in diesem Bereich überschätzt wurden.
          Daher kann ich aus dem Titel einer Nachricht nicht entnehmen, was zu tun ist.
          Andere Beiträge haben mich allerdings überzeugt, statt des mail das phpmail zu verwenden.
          Aber Schwamm drüber, es gibt schlimmere Ereignisse auf der Welt, über die man sich schwarz ärgern muss.

          1. Daher kann ich aus dem Titel einer Nachricht nicht entnehmen, was zu tun ist.

            • Wenn etwas „nicht geht“ und jemand helfen soll, dann zeigt man im Falle eines Skriptes oder Programmes eben das Skript
            • Bei fehlerhaft ankommenden Mails zeigt man die Header (Kopfzeilen). Wer nicht weiß, wie man an diese rankommt, der google nach „$Mailprogramm Header anzeigen“.
            • Wenn andere Fehler auftreten, teilt man nicht nur mit, das es so ist, man gibt die Fehlermeldungen (idealerweise die betreffenden Zeilen aus dem Error-Log) wieder.
            • Bei allen „Netzwerksachen“ beschreibt man möglichst genau die Umstände (PC zu Hause oder Server bzw, Webauftritt bei $Hoster - also auch dessen Firma und was man für einen Vertrag hat).

            In Deinem Fall würde ich nachsehen, ob Dein Hoster selbst veröffentlicht hat wie man mit PHP Mails versendet. Google also nach „$DeinHoster PHP Mail“. Solltest Du dazu nur etwas in Foren finden: Ignoriere alles, was vor 2016 geschrieben wurde und sodann alles, worin „SSL“ oder „TLS“ nicht vorkommen.

            1. Hallo Raketenwilli,
              ich gebe Dir 100% Recht.
              Zu meiner Entschuldigung aber folgendes. In einer der ersten Antworten und auch später wurde darauf hingewiesen, dass statt des unsicheren mail der PHPMailer verwendet werden sollte. Daher war für mich die Suche nach der Ursache in den Hintergrund geraten.

              1. Hallo Raketenwilli,
                ich gebe Dir 100% Recht.
                Zu meiner Entschuldigung aber folgendes. In einer der ersten Antworten und auch später wurde darauf hingewiesen, dass statt des unsicheren mail der PHPMailer verwendet werden sollte. Daher war für mich die Suche nach der Ursache in den Hintergrund geraten.

                mail() ist nicht „per se“ unsicher. Jedenfalls nicht so lange man das Mail mit festgelegtem Subjekt an eine festgelegte Mailadresse sendet. PHPMailer versucht viele Dinge (Mail mit HTML und Text, Anhängen) zu vereinfachen und z.B. den Direktversand unter Umgehung des SMTP (Mailtransportserver, oft „Smartserver“) des Hosters, ggf. Nutzung eines alternativen SMTP zu ermöglichen. Aber auch das geht nicht immer (z.B. wegen Firewall oder anderen Sicherheitsregeln).

                1. mail() ist nicht „per se“ unsicher. Jedenfalls nicht so lange man das Mail mit festgelegtem Subjekt an eine festgelegte Mailadresse sendet.

                  Genau dies war aber der Fall.
                  Subjekt: Anfrage über Kontaktformular
                  Mailadresse: Meine gmx-Adresse.

                  Ich verabschiede mich und danke für die rege Teilnahme.

                  1. In dem Fall bleib bei Deinem ursprünglichen Skript und bau Dir in Deinem Emailprogramm eine Empfangsregel, welche anhand der Absenderaddresse die Nachricht aus dem Spamordner holt und/oder den eventuell mit tätigen, lokalen Spamfilter für diese Nachricht übergeht.

                    Im Thunderbird heisst diese Funktion „Filter“ und kann über das Menü „Extras“ erreicht werden. Ein solcher Filter sieht etwa so aus: