Installation
Wenn man mit PHP Mails verschicken will, stößt man sehr oft auf die Empfehlung PHPMailer. Das scheint wohl die Maillösung für PHP zu sein. Ok, dann mal testen. Erste Schwierigkeit, wie downloaden? Da stößt man auf composer, das mal ausprobiert. Aber ehrlich gesagt, verstehe ich das nicht so wirklich....
composer require phpmailer/phpmailer
Wegen Ahnungslosigkeit, habe ich dann das entsprechende Verzeichnis kopiert. Gut, das haben wir jetzt erst mal.
Test-Code
<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require __DIR__ . '../../vendor/phpmailer/phpmailer/src/Exception.php';
require __DIR__ . '../../vendor/phpmailer/phpmailer/src/PHPMailer.php';
require __DIR__ . '../../vendor/phpmailer/phpmailer/src/SMTP.php';
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'xxxx.de;xxxxx.de'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'USER'; // SMTP username
$mail->Password = 'PASSWORD'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->CharSet = 'utf-8';
$mail->setFrom('webmaster@domain.de', 'Domain_Name');
$mail->addAddress('EMail_Addresse', 'Name'); // Add a recipient
//$mail->addAddress('test@example.com'); // Name is optional
$mail->addReplyTo('webmaster@domain.de', 'Name');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//Attachments
$mail->addAttachment('test.jpg'); // Add attachments
//$mail->addAttachment('test.jpg', 'test.jpg'); // Optional name
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Testmail';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$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;
}
Deutsche Umlaute
Hatte ich erst nach Einfügen von
$mail->CharSet = 'utf-8';