TuxCore Skillset

PHPMailer Debug Template

prompt debug Guld

prompts/debug/phpmailer-debug-template.md

PHPMailer Debug Template

Kategori

debug

Status

Guld

Bruges til

Denne prompt bruges når TuxCore skal fejlfinde PHPMailer, SMTP, Simply.com mailopsætning, login-koder, invitationer, password reset eller admin-mails.

Den er god til:

Prompt

$mail $php $debug

Jeg har et PHPMailer/mail-problem.

## Problem

[Beskriv hvad der ikke virker]

## Fejlbesked

Indsæt fejl her:

[indsæt PHPMailer error / PHP error / serverlog]


## Filstruktur

[indsæt relevant filstruktur]


## Mail config placering

[fx ../mail_config.php eller /home/user/mail_config.php]


## Composer/PHPMailer placering

[fx ../vendor/autoload.php]


## Relevant kode

[indsæt relevant mailer.php / send-funktion / include-kode]


## Hosting/miljø

- Hosting: [Simply.com / Docker / lokal / andet]
- SMTP host: [indsæt host uden password]
- SMTP port: [587/465/andet]
- Kryptering: [STARTTLS/SSL/andet]
- PHPMailer via Composer: [ja/nej/ved ikke]

## Det jeg vil have

Svar med:

1. Hvad fejlen betyder.
2. Mest sandsynlige årsag.
3. Hvilke include-stier der skal tjekkes.
4. Om SMTP-konfigurationen ser rigtig ud.
5. Præcis rettelse.
6. Testfil hvis relevant.
7. Hvad jeg skal slette igen efter test.

Regler:

- Gentag aldrig SMTP-passwords, tokens eller secrets.
- Brug PHPMailer via Composer autoload.
- Brug ikke PHP `mail()` som løsning.
- Gør svaret copy/paste-klar.
- Antag Simply.com-venlig PHP når intet andet er nævnt.

Eksempel på brug

$mail $php $debug

Reset password sender ikke mail på RU-Teknik portalen.
PHPMailer ligger globalt i ../vendor/autoload.php.
Mail config ligger i ../mail_config.php.
Her er fejlbeskeden og mailer.php.

Forventet output

Et godt svar bør indeholde:

Standard testfil

<?php
declare(strict_types=1);

ini_set('display_errors', '1');
error_reporting(E_ALL);

require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../mail_config.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host = MAIL_HOST;
    $mail->SMTPAuth = true;
    $mail->Username = MAIL_USERNAME;
    $mail->Password = MAIL_PASSWORD;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = MAIL_PORT;
    $mail->CharSet = 'UTF-8';

    $mail->setFrom(MAIL_FROM_EMAIL, MAIL_FROM_NAME);
    $mail->addReplyTo(MAIL_REPLY_TO, MAIL_FROM_NAME);
    $mail->addAddress('test@example.dk');

    $mail->isHTML(true);
    $mail->Subject = 'PHPMailer test';
    $mail->Body = '<p>Dette er en testmail.</p>';
    $mail->AltBody = 'Dette er en testmail.';

    $mail->send();

    echo 'OK: Mail sendt';
} catch (Exception $e) {
    echo 'FEJL: ' . htmlspecialchars($mail->ErrorInfo ?: $e->getMessage(), ENT_QUOTES, 'UTF-8');
}

Typiske fejl

Class PHPMailer not found

Mulige årsager:

Fix:

Eksempel:

$autoload = __DIR__ . '/../vendor/autoload.php';

if (!file_exists($autoload)) {
    exit('Autoload ikke fundet: ' . htmlspecialchars($autoload, ENT_QUOTES, 'UTF-8'));
}

require_once $autoload;

SMTP connect failed

Mulige årsager:

Typiske kombinationer:

Port 587 = STARTTLS
Port 465 = SMTPS/SSL

Authentication failed

Mulige årsager:

Fix:

Mail sendes men modtages ikke

Mulige årsager:

Fix:

Virker i ét projekt men ikke i et andet

Mulige årsager:

Fix:

Sikkerhedsregler

Tags

phpmailer, mail, smtp, simply, debug, php, composer, tuxcore
phpmailer mail smtp simply debug composer