webklex/laravel-imap als Transport, eigener DSN-Parser nach RFC 3464 auf der rohen Nachricht: Final-Recipient, Action, Status, Diagnostic-Code und unser X-Pk-Ref aus der Original-Nachricht. Maßgeblich ist Action — Zustellbestätigungen sperren niemanden, Freitext-Rückläufer wandern nach Unparsed vor einen Menschen, Abwesenheitsnotizen nach Ignored. mail:fetch-bounces alle zehn Minuten; ohne Konto tut es nichts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
21 lines
482 B
PHP
21 lines
482 B
PHP
<?php
|
|
|
|
namespace App\Services\Mail;
|
|
|
|
use Illuminate\Support\Carbon;
|
|
|
|
/**
|
|
* Ergebnis eines gelesenen Zustellberichts (RFC 3464).
|
|
*/
|
|
final readonly class DsnReport
|
|
{
|
|
/**
|
|
* @param list<array{email: string, action: string, status: string|null, diagnostic: string|null}> $recipients
|
|
*/
|
|
public function __construct(
|
|
public string $messageId,
|
|
public array $recipients,
|
|
public ?string $reference,
|
|
public ?Carbon $receivedAt,
|
|
) {}
|
|
}
|