Script erstellt
This commit is contained in:
233
test-mail.php
Normal file
233
test-mail.php
Normal file
@@ -0,0 +1,233 @@
|
||||
<?php
|
||||
// Test: E-Mail-Konfiguration testen
|
||||
echo "📧 Test: E-Mail-Konfiguration testen\n";
|
||||
echo "====================================\n\n";
|
||||
|
||||
// 1. E-Mail-Konfiguration prüfen
|
||||
echo "1. ⚙️ E-Mail-Konfiguration prüfen:\n";
|
||||
$envPath = '.env';
|
||||
if (file_exists($envPath)) {
|
||||
$envContent = file_get_contents($envPath);
|
||||
|
||||
$mailSettings = [
|
||||
'MAIL_MAILER' => 'Mailer',
|
||||
'MAIL_HOST' => 'Host',
|
||||
'MAIL_PORT' => 'Port',
|
||||
'MAIL_USERNAME' => 'Username',
|
||||
'MAIL_PASSWORD' => 'Password',
|
||||
'MAIL_ENCRYPTION' => 'Encryption',
|
||||
'MAIL_FROM_ADDRESS' => 'From Address',
|
||||
'MAIL_FROM_NAME' => 'From Name'
|
||||
];
|
||||
|
||||
foreach ($mailSettings as $setting => $description) {
|
||||
if (preg_match("/$setting=(.*)/", $envContent, $matches)) {
|
||||
$value = trim($matches[1]);
|
||||
if ($setting === 'MAIL_PASSWORD') {
|
||||
$value = str_repeat('*', min(strlen($value), 4)) . '...';
|
||||
}
|
||||
echo " ✅ $description: $value\n";
|
||||
} else {
|
||||
echo " ❌ $description: Nicht gesetzt\n";
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
echo " ❌ .env Datei nicht gefunden\n";
|
||||
}
|
||||
|
||||
// 2. Laravel Mail-Konfiguration testen
|
||||
echo "\n2. 🐘 Laravel Mail-Konfiguration testen:\n";
|
||||
try {
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
// Laravel Bootstrap
|
||||
$app = require_once 'bootstrap/app.php';
|
||||
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
|
||||
|
||||
// Mail-Konfiguration abrufen
|
||||
$mailConfig = config('mail');
|
||||
|
||||
echo " 📋 Mail-Konfiguration:\n";
|
||||
echo " - Default: " . ($mailConfig['default'] ?? 'nicht gesetzt') . "\n";
|
||||
echo " - Mailers: " . implode(', ', array_keys($mailConfig['mailers'] ?? [])) . "\n";
|
||||
|
||||
if (isset($mailConfig['mailers']['smtp'])) {
|
||||
$smtpConfig = $mailConfig['mailers']['smtp'];
|
||||
echo " - SMTP Host: " . ($smtpConfig['host'] ?? 'nicht gesetzt') . "\n";
|
||||
echo " - SMTP Port: " . ($smtpConfig['port'] ?? 'nicht gesetzt') . "\n";
|
||||
echo " - SMTP Encryption: " . ($smtpConfig['encryption'] ?? 'nicht gesetzt') . "\n";
|
||||
echo " - SMTP Username: " . ($smtpConfig['username'] ?? 'nicht gesetzt') . "\n";
|
||||
echo " - SMTP Password: " . (isset($smtpConfig['password']) ? '***' : 'nicht gesetzt') . "\n";
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo " ❌ Fehler beim Laden der Mail-Konfiguration: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
// 3. Test-Mail senden
|
||||
echo "\n3. 📤 Test-Mail senden...\n";
|
||||
try {
|
||||
// Test-E-Mail-Adresse (kann angepasst werden)
|
||||
$testEmail = 'test@example.com';
|
||||
|
||||
echo " 📧 Sende Test-Mail an: $testEmail\n";
|
||||
|
||||
// Mail senden
|
||||
$result = \Illuminate\Support\Facades\Mail::raw('Dies ist eine Test-Mail von der NeoNail Datenbank.
|
||||
|
||||
Zeitstempel: ' . now() . '
|
||||
Server: ' . $_SERVER['SERVER_NAME'] ?? 'Unbekannt' . '
|
||||
|
||||
Diese E-Mail wurde automatisch generiert, um die E-Mail-Konfiguration zu testen.
|
||||
|
||||
Viele Grüße,
|
||||
NeoNail DB System', function($message) use ($testEmail) {
|
||||
$message->to($testEmail)
|
||||
->subject('Test-Mail: NeoNail DB E-Mail-Konfiguration')
|
||||
->from(config('mail.from.address'), config('mail.from.name'));
|
||||
});
|
||||
|
||||
echo " ✅ Test-Mail erfolgreich gesendet!\n";
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo " ❌ Fehler beim Senden der Test-Mail: " . $e->getMessage() . "\n";
|
||||
|
||||
// Detaillierte Fehleranalyse
|
||||
echo " 🔍 Fehleranalyse:\n";
|
||||
if (strpos($e->getMessage(), 'Connection refused') !== false) {
|
||||
echo " - Problem: Verbindung zum SMTP-Server verweigert\n";
|
||||
echo " - Lösung: Prüfen Sie MAIL_HOST und MAIL_PORT\n";
|
||||
} elseif (strpos($e->getMessage(), 'Authentication failed') !== false) {
|
||||
echo " - Problem: Authentifizierung fehlgeschlagen\n";
|
||||
echo " - Lösung: Prüfen Sie MAIL_USERNAME und MAIL_PASSWORD\n";
|
||||
} elseif (strpos($e->getMessage(), 'SSL') !== false) {
|
||||
echo " - Problem: SSL/TLS Verbindungsproblem\n";
|
||||
echo " - Lösung: Prüfen Sie MAIL_ENCRYPTION (SSL/TLS)\n";
|
||||
} else {
|
||||
echo " - Unbekannter Fehler: " . $e->getMessage() . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Alternative Test-Mail mit SwiftMailer
|
||||
echo "\n4. 📤 Alternative Test-Mail (SwiftMailer)...\n";
|
||||
try {
|
||||
// SwiftMailer direkt testen
|
||||
$transport = new \Swift_SmtpTransport(
|
||||
config('mail.mailers.smtp.host'),
|
||||
config('mail.mailers.smtp.port'),
|
||||
config('mail.mailers.smtp.encryption')
|
||||
);
|
||||
|
||||
$transport->setUsername(config('mail.mailers.smtp.username'));
|
||||
$transport->setPassword(config('mail.mailers.smtp.password'));
|
||||
|
||||
$mailer = new \Swift_Mailer($transport);
|
||||
|
||||
$message = new \Swift_Message('SwiftMailer Test: NeoNail DB');
|
||||
$message->setFrom([config('mail.from.address') => config('mail.from.name')]);
|
||||
$message->setTo(['test@example.com' => 'Test User']);
|
||||
$message->setBody('Dies ist eine SwiftMailer Test-Mail von der NeoNail Datenbank.
|
||||
|
||||
Zeitstempel: ' . now() . '
|
||||
|
||||
Viele Grüße,
|
||||
NeoNail DB System');
|
||||
|
||||
$result = $mailer->send($message);
|
||||
|
||||
if ($result) {
|
||||
echo " ✅ SwiftMailer Test-Mail erfolgreich gesendet!\n";
|
||||
} else {
|
||||
echo " ❌ SwiftMailer Test-Mail fehlgeschlagen\n";
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo " ❌ SwiftMailer Fehler: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
// 5. E-Mail-Template erstellen
|
||||
echo "\n5. 📝 E-Mail-Template erstellen...\n";
|
||||
$emailTemplatePath = 'resources/views/emails/test.blade.php';
|
||||
$emailTemplateContent = '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>NeoNail DB Test-Mail</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
|
||||
.container { max-width: 600px; margin: 0 auto; padding: 20px; }
|
||||
.header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; text-align: center; border-radius: 10px 10px 0 0; }
|
||||
.content { background: #f9f9f9; padding: 20px; border-radius: 0 0 10px 10px; }
|
||||
.footer { text-align: center; margin-top: 20px; color: #666; font-size: 12px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h1>🎨 NeoNail DB</h1>
|
||||
<p>E-Mail-Konfiguration Test</p>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h2>✅ E-Mail-Konfiguration erfolgreich!</h2>
|
||||
|
||||
<p>Hallo,</p>
|
||||
|
||||
<p>dies ist eine Test-Mail von der NeoNail Datenbank. Die E-Mail-Konfiguration funktioniert korrekt!</p>
|
||||
|
||||
<h3>📋 Test-Details:</h3>
|
||||
<ul>
|
||||
<li><strong>Zeitstempel:</strong> {{ now() }}</li>
|
||||
<li><strong>Server:</strong> {{ $_SERVER["SERVER_NAME"] ?? "Unbekannt" }}</li>
|
||||
<li><strong>Mailer:</strong> {{ config("mail.default") }}</li>
|
||||
<li><strong>Host:</strong> {{ config("mail.mailers.smtp.host") }}</li>
|
||||
</ul>
|
||||
|
||||
<p>Die E-Mail-Funktionalität ist jetzt bereit für Benachrichtigungen und Passwort-Reset.</p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>Diese E-Mail wurde automatisch generiert von der NeoNail DB</p>
|
||||
<p>© {{ date("Y") }} NeoNail DB System</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
// Template-Verzeichnis erstellen
|
||||
$emailDir = 'resources/views/emails';
|
||||
if (!is_dir($emailDir)) {
|
||||
mkdir($emailDir, 0755, true);
|
||||
echo " ✅ E-Mail-Verzeichnis erstellt: $emailDir\n";
|
||||
}
|
||||
|
||||
file_put_contents($emailTemplatePath, $emailTemplateContent);
|
||||
echo " ✅ E-Mail-Template erstellt: $emailTemplatePath\n";
|
||||
|
||||
// 6. Template-Mail senden
|
||||
echo "\n6. 📤 Template-Mail senden...\n";
|
||||
try {
|
||||
$result = \Illuminate\Support\Facades\Mail::send('emails.test', [], function($message) {
|
||||
$message->to('test@example.com')
|
||||
->subject('Template Test: NeoNail DB')
|
||||
->from(config('mail.from.address'), config('mail.from.name'));
|
||||
});
|
||||
|
||||
echo " ✅ Template-Mail erfolgreich gesendet!\n";
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo " ❌ Template-Mail Fehler: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
echo "\n✅ E-Mail-Test abgeschlossen!\n";
|
||||
echo "📋 Nächste Schritte:\n";
|
||||
echo "1. Prüfen Sie Ihr E-Mail-Postfach (test@example.com)\n";
|
||||
echo "2. Falls keine E-Mail ankommt, prüfen Sie Spam-Ordner\n";
|
||||
echo "3. Falls Fehler auftreten, prüfen Sie die SMTP-Einstellungen\n";
|
||||
echo "4. Für echte Tests, ändern Sie die E-Mail-Adresse im Script\n";
|
||||
echo "\n🔗 E-Mail-Funktionen sind jetzt verfügbar für:\n";
|
||||
echo "- Passwort-Reset\n";
|
||||
echo "- Benutzer-Benachrichtigungen\n";
|
||||
echo "- Admin-Benachrichtigungen\n";
|
||||
?>
|
||||
Reference in New Issue
Block a user