Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mailtrap sends message identifiers in inbound notifications, so Laravel Mailbox must retrieve the original email before it can call handlers.
This change adds a built-in
mailtrapdriver with signature authentication, message retrieval, and setup documentation.It preserves PHP 8.1 and Laravel 10–13 support.
The driver creates one job per message.
Applications can process messages immediately or use a persistent background queue.
Shared cache locks prevent overlapping processing, and completion records suppress repeat processing for 24 hours.
A failed event does not prevent the driver from attempting the other valid events in its batch.
Application handlers still need protection against repeated actions after a partial failure or cache loss.
All 13 supported PHP/Laravel combinations passed 240 tests and 827 assertions each.
Separate tests passed for real HTTPS redirects, interrupted downloads, timeouts, and two concurrent queue workers.
A fresh Laravel 13 app also passed configuration and route caching.
Legacy Laravel 10/11 test installations required isolated framework advisory exceptions, with audit reporting retained.
No advisory exception changes the package or its workflow.
Live Mailtrap delivery preserved text, HTML, and an attachment with an identical SHA256.
An actual reply retained its
In-Reply-ToandReferencesheaders.A locally signed batch of four duplicate notifications caused no extra download or handler call.
A controlled handler failure recovered through the database queue on attempt two after 301 seconds, using real Mailtrap downloads.
The raw download requests carried no API authorization or cookie header.
A locally signed notification for a real message in a second inbox was ignored before download.
A mixed batch queued only the two valid primary messages and caused no extra handler call.
Batch and filter tests used locally signed notifications. Mailtrap's own batching and notification retry schedule were not tested.