PHPMail - Fatal error: Uncaught Error: Class not found

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHPMail - Fatal error: Uncaught Error: Class not found

    Folgende Fehlermeldung beim Versuch, PHPMail zu starten:
    "Fatal error: Uncaught Error: Class "vendor\phpMailer\phpmailer\src\phpmailer" not found in C:\xampp\htdocs\m2work\phpmailer_test.php on line 69"
    Obwohl die Klasse da ist, mit
    if (!class_exists('phpmailer'))
    überprüft und bestätigt.

    Versuch auf XAMPP. Hat jemand eine Idee?

    Hier der obere Teil auf des Codes:

    <?php
    // include_path=" ";

    require 'vendor/autoload.php';
    use vendor\phpMailer\phpmailer\src\phpmailer;
    use vendor\phpMailer\phpmailer\src\SMTP;
    use vendor\phpmailer\phpmailer\src\Exception;


    if (!class_exists('phpmailer'))
    {
    echo
    'Klasse existiert -FALSE !class_exists(_phpmailer_) <br>';
    require_once 'C:/xampp/htdocs/vendor/phpmailer/phpmailer/src/phpmailer.php';
    } else echo
    'Klasse existiert -TRUE !class_exists(_phpmailer_) <br>';

    // ================================================== ===============


    // Jetzt noch ein Test, ob die Klasse schon eingebunden ist:

    if (!class_exists('phpmailer'))
    {
    echo
    'Klasse phpmailer existiert -FALSE <br>';
    } else echo
    'Klasse phpmailer existiert -TRUE <br>'; // Diese Meldung wird ausgegeben!
    // ================================================== ===============

    // Klasse PHPMailer aufrufen:

    try {
    // Versuch, eine neue Instanz der Klasse PHPMailer zu erstellen, wobei Ausnahmen aktiviert sind
    $mail = new PHPMailer (true); // <=== HIER FEHLERMELDUNG, dass er die Class nicht findet!
    // (…)
    } catch (Exception $e) {
    echo "Mailer Error: ".$e->getMessage();
    }

    Ich erhalte wie oben gesagt im Browser:

    Fatal error: Uncaught Error: Class "vendor\phpMailer\phpmailer\src\phpmailer" not found in C:\xampp\htdocs\m2work\phpmailer_test.php on line 67

    Hat jemand eine Idee?

    Grüße! Lenno​

  • #2
    Tja, das passiert, wenn man einfach irgendeinen Quellcode kopiert ohne diesen zu verstehen.

    Ich glaube nicht, dass du das Verzeichnis vendor hast, oder?

    Kommentar


    • #3
      Composer hat tatsächlich das Verzeichnis vendor eingerichtet. Darin liegen die Ordner phpmailer und composer sowie die Datei autoload.php

      Ich vermute, dass das Problem im Bereich namespace in anderen Dateien und/oder use liegt.

      Kommentar


      • #4
        Fehler gefunden, es muss im Code heißen;

        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;

        Der Befehl use ist für mich neu und ich hatte beim "Probieren" der Problemlösung den Pfad irgendwann dem realen Pfad angepasst. Warum es damit nicht lief ist mir ein Rätsel.​

        Kommentar


        • #5
          Bin doch noch nicht durch mit dem Fehler.

          Wichtiges Zwischenergebnis:

          Die Funktion
          class_exists('phpmailer')
          gibt FALSE aus, auch wenn die Klasse phpmailer zuvor erfolgreich mit NEW erstellt wurde.

          Kommentar


          • #6
            E-Mail senden scheint so weit zu funktionieren. Nur der Gmail-Server produziert ein timeout. Hat jemand da Einstellungen, die bei ihm funktioniert haben?

            Kommentar

            Lädt...
            X