Files
2025-11-02 22:52:08 +01:00

102 lines
2.9 KiB
PHP

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/autoload.php';
function sendmail($subject, $from, $body, $cc=[], $bcc=[], $to=[]) {
global $develop;
$ret = [];
$ret['error'] = false;
$mail = new PHPMailer(true);
try {
// Debug-Einstellungen
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->Debugoutput = function($str, $level) {
file_put_contents(__DIR__ . '/phpmailer_debug.log',
date('Y-m-d H:i:s') . " [Level $level] $str\n", FILE_APPEND);
};
// Basis-Einstellungen
$mail->CharSet = 'UTF-8';
$mail->isSMTP();
if ($develop == 'true') {
$mail->Host = 'mailhog';
$mail->Port = 1025;
$mail->SMTPAuth = false;
} else {
// GMX Einstellungen
$mail->Host = 'smtp.gmx.com'; // ✅ Korrekter Host
$mail->Port = 465;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->SMTPAuth = true;
$mail->Username = 'sternwarte.welzheim@gmx.de';
$mail->Password = '4NT&%nH9&5wz'; // ✅ Tippfehler korrigiert
// // GMX Einstellungen
// $mail->Host = 'smtp.office365.com'; // ✅ Korrekter Host
// $mail->Port = 587;
// $mail->SMTPSecure = 'tls';
// $mail->SMTPAuth = true;
// $mail->Username = 'sonderfuehrung@sternwarte.welzheim.de';
// $mail->Password = 'UNK44mkap5'; // ✅ Tippfehler korrigiert
// Optional: Zusätzliche Authentifizierung
$mail->AuthType = 'LOGIN';
// Optional: Timeout erhöhen
$mail->Timeout = 60;
}
// Absender
$mail->setFrom('sternwarte.welzheim@gmx.de', 'Sternwarte-Welzheim');
// Empfänger
if (count($to) != 0) {
foreach ($to as $t) {
$mail->addAddress($t);
}
}
// CC
if (count($cc) != 0) {
foreach ($cc as $c) {
$mail->addCC($c);
}
}
// BCC
if (count($bcc) != 0) {
foreach ($bcc as $bc) {
$mail->addBCC($bc);
}
}
// Reply-To
if (!empty($from)) {
$mail->addReplyTo($from);
}
// Inhalt
$mail->Subject = $subject;
$mail->isHTML(false); // Oder true, je nach Bedarf
$mail->Body = $body;
// Senden
$mail->send();
$ret['oktext'] = 'Mail erfolgreich versendet';
} catch (Exception $e) {
$ret['error'] = true;
$ret['errortext'] = "Mailer Error: {$mail->ErrorInfo}";
error_log("PHPMailer Error: " . $e->getMessage());
}
return $ret;
}