PHPMail - Fatal error: Uncaught Error: Class not found

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

  • reddighamburg
    antwortet
    Eine Klasse wird nicht mit New erstellt.
    New erstellt ein Objekt einer klasse.

    Das Ergebnis von class_exists ist lediglich davon abhängig, ob der code, der die Klasse implementiert, bereits geladen wurde und gibt Auskunft darüber, ob du denn mittels New ein entsprechendes Objekt dieser Klasse erstellen könntest.

    spi autoloader werden dabei mit der Standardeinstellung berücksichtigt und es wird automatisch versucht, die klasse zu laden, sofern noch nicht geschehen.

    In deinem letzten Post widersprichst du dir allerdings ein wenig selbst:
    E-Mail senden scheint zu funktionieren
    vs.
    Gmail-Server produziert ein timeout

    was denn nun?

    Weiterhin ist es eher unwahrscheinlich, dass der Gmail-Server ein timeout produziert. Vermutlich meinst du, dass dein Script den Gmail-Server gar nicht erst erreicht, und deswegen mit einem timout "aufgibt".

    Was sind denn deine nicht funktionierenden Einstellungen?

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Lenno
    antwortet
    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.

    Einen Kommentar schreiben:


  • Lenno
    antwortet
    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.​

    Einen Kommentar schreiben:


  • Lenno
    antwortet
    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.

    Einen Kommentar schreiben:


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

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

    Einen Kommentar schreiben:


  • Lenno
    hat ein Thema erstellt PHPMail - Fatal error: Uncaught Error: Class not found.

    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​
Lädt...
X