CluPilotCloud/tests/Feature/Mail
nexxo 0475aad7b0 Fix-Runde 1: das Zeitfenster gilt nur, wo auch gedrosselt wird
Eine zeitliche Grenze hebelt --tries nicht bloss fuer Rueckstellungen aus,
sondern ganz: Worker::markJobAsFailedIfWillExceedMaxAttempts prueft die
Versuchszahl ausdruecklich nur if (! $job->retryUntil()). Damit galten die drei
Versuche seit dem Takt NIRGENDS mehr — auch nicht auf der Direktspur und auch
nicht bei ausgeschaltetem Notschalter.

Eine Mail, die aus echtem Grund wirft (SMTP tot, PDF-Rendern kippt), wurde
dadurch sechs Stunden lang wiederholt statt nach drei Versuchen abgelegt, und
ohne Pause, weil der Arbeiter ohne --backoff laeuft. Ihr Fehler stand sechs
Stunden lang nicht in failed_jobs, und auf der Direktspur haette eine einzige
giftige Mail sechs Stunden lang die Kennwort-Zuruecksetzungen blockiert, sobald
Aufgabe 4 den Arbeiter in Prioritaetsreihenfolge lesen laesst.

retryUntil() haengt jetzt an derselben Bedingung wie die Drossel, beide lesen
gedrosselteSpur(). Vorher wird die Elternklasse gefragt: SendQueuedMailable
reicht an die Mailklasse weiter, und die Ueberschreibung nahm das still weg.

Dazu zwei kleinere Punkte aus derselben Durchsicht: der Kopfkommentar behauptete
weiter, eine middleware() auf der Mailklasse lese niemand — widerlegt am
Vendor-Code, jetzt steht der echte Grund dort. Und (int) Settings::get() ergab
auch ohne eingetipptes 0 eine Null (gespeicherte null, nichtnumerischer Wert);
eine Untergrenze steht jetzt an der Lesestelle, an der der Verlust passiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 16:55:50 +02:00
..
MailLaneRoutingTest.php Der Takt, und die Falle mit den Versuchen 2026-08-03 16:25:25 +02:00
MailLaneTest.php Drei Spuren, und welche Mail in welche gehoert 2026-08-03 15:31:31 +02:00
MailPaceTest.php Fix-Runde 1: das Zeitfenster gilt nur, wo auch gedrosselt wird 2026-08-03 16:55:50 +02:00
MailSettingsPageTest.php Move the console's identity out of the customer table 2026-07-28 10:31:43 +02:00
MailboxModelTest.php Let a mailbox send without a password when it never needed one 2026-07-28 05:54:21 +02:00
MailboxResolverTest.php Move the one SMTP account into the mailbox table it outgrew 2026-07-28 00:24:54 +02:00
MailboxSeedMigrationTest.php Trust an explicitly configured mail host or port over the placeholder 2026-07-28 07:10:53 +02:00
MailboxTakeoverTest.php Close the data-loss paths the review found in the mailbox takeover 2026-07-28 01:15:50 +02:00
MailboxTesterTest.php Bound the mail test-send and real send to a timeout instead of hanging 2026-07-28 16:36:14 +02:00
MailboxTransportTest.php Bound the mail test-send and real send to a timeout instead of hanging 2026-07-28 16:36:14 +02:00
SenderAddressTest.php Der Takt, und die Falle mit den Versuchen 2026-08-03 16:25:25 +02:00
SystemMailboxReadinessTest.php Bereitschaft: das Absender-Postfach wird gefragt, ob es senden KANN 2026-07-31 20:35:58 +02:00