Nur leere Seite bei PHP-Mailer


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
#1
Hallo!

Ich bin recht neu im Umgang mit PHP und versuche gerade, den PHP-Mailer zum Laufen zu bringen.
Sonst funktionieren meine .php-Dateien auf dem Server, doch in diesem Fall wird mir nur eine leere Seite angezeigt.
Nicht einmal Fehlermeldungen bekomme ich.
Was könnte an meinem Code falsch sein? Oder liegt es am Provider? Bin bei Hetzner. Muss man hier irgendetwas Spezielles beachten, was den Versand über PHPMailer betrifft?

Der Code ist:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<?php
error_reporting(E_ALL);
// error_reporting(E_STRICT);

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';

$mail = new PHPMailer(true); // Passing `true` enables exceptions

// To load the German version
$mail->setLanguage('de', '/language/phpmailer.lang-de.php');

try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.your-server.de'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'info@mein-username.de'; // SMTP username
$mail->Password = 'mein passwort'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25; // TCP port to connect to Recipients

//Recipients
$mail->setFrom('sender@sender.de', 'Sendername');
$mail->AddAdress('empfaenger@empf.de', 'Luis Empfänger'); //Add recipient (Name is optional)
$mail->addAddress('empfaenger2@empf.de', 'Emil Empfänger'); // Add another recipient
$mail->addReplyTo('sender@sender.de', 'Sendername');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

//Attachments
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Versandprüfung';
$mail->Body = 'This is the HTML message body';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: '.$mail->ErrorInfo;
}
?>

</body>
</html>

Absender und Empfänger hatte ich mit validen Mail-Adressen hinterlegt, CC, BCC und Attachments auskommentiert.

Danke und Gruß,
KG
 

EuroCent

Erfahrenes Mitglied
#2
Debuggen kann dir da helfen :)

Versuch doch mal langsam Code-Zeile für Code-Zeile durch zu debuggen.
Kommentiere erst alles aus und dann schritt für schritt


PHP:
<?php
printf("<pre>%s</pre>", print_r($mail, true));
?>
 
#3
Danke EuroCent!
Nachdem ich erst einmal abgeklärt hatte, was man mit printf und <pre> macht - sehr nützlich! - habe ich das schrittweise Auskommentieren einmal vorgenommen.
Hier ist es nun so, dass bis $mail->setFrom('sender@sender.de', 'Sendername'); alles einwandfrei durchläuft und nach und nach bei der Anzeige von printf die Variablen belegt werden, doch ab dem Punkt, wo ich über $mail->AddAdress('empfaenger@empf.de', 'Luis Empfänger'); einen Adressaten eintrage, bekomme ich keine Ausgabe mehr für Deinen Ausdruck. Auch wenn ich den optionalen Name - hier "Luis Empfänger" weglasse.
Wie komme ich an diesem Punkt mit meiner Fehlersuche weiter?
 
#4
Hier bin ich gerade schon weitergekommen: Anscheinend haben Engländer und Amerikaner zusammen an diesem GitHub-Projekt gearbeitet, denn "AddAdress" ist in der Funktionsdefinition mit zwei "d" geschrieben worden, im Beispielfile aber nur mit einem.
Jetzt teste ich mal, ob's läuft, wenn nicht, mache ich weiter mit der Auskommentiererei.
Gruß, KG
 

EuroCent

Erfahrenes Mitglied
#6
Keine Ursache :)
Aber gut zu wissen dass die Beispiel-Doku nicht mit der Definition übereinstimmt :)

Vielen Dank für den kleinen entschiedenen Hinweis :)
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…