Download the PHP package kirschbaum-development/mail-intercept without Composer
On this page you can find all versions of the php package kirschbaum-development/mail-intercept. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kirschbaum-development/mail-intercept
More information about kirschbaum-development/mail-intercept
Files in kirschbaum-development/mail-intercept
Package mail-intercept
Short Description A test package for intercepting email sent from Laravel
License MIT
Homepage https://github.com/kirschbaum-development/mail-intercept
Informations about the package mail-intercept
Laravel Mail Intercept
A testing package for intercepting mail sent from Laravel
This testing suite intercepts Laravel Mail just before they are sent out, allowing all kinds of assertions to be made on the actual emails themselves.
Mail isn't faked here. You get to inspect the actual mail ensuring you are sending exactly what you want!
Requirements
Laravel Version | Mail Intercept Version |
---|---|
10.x & 11.0 | 1.0.x |
9.x | 0.3.x |
8.x and lower | 0.2.x |
Please note: If you are using v0.2.x
, please refer to that version's documentation.
Installation
Usage
Next you can use the KirschbaumDevelopment\MailIntercept\WithMailInterceptor
trait in your test class:
That's it! Pretty simple, right?!
There are two ways of accessing the assertions. First is the fluent syntax directly on each intercepted email.
The other way (the older way) is to use the assertions methods made available from the WithMailInterceptor
trait. Using these methods are fine, but aren't as clean to write.
Both of these assertions do the exact same thing, the fluent one is just much cleaner. See all the available assertion methods below!
Testing API
This method MUST be called first, similar to how Mail::fake()
works. But unlike the mail fake, mail is not faked, it is intercepted.
This should be called after Mail
has been sent, but before your assertions, otherwise you won't have any emails to work with. It returns a Collection
of emails so you are free to use any of the methods available to a collection.
Fluent Assertion Methods
Assertions | Parameters |
---|---|
$intercepted->assertSentTo($to); |
$to array, string |
$intercepted->assertNotSentTo($to); |
$to array, string |
$intercepted->assertSentFrom($from); |
$from array, string |
$intercepted->assertNotSentFrom($from); |
$from array, string |
$intercepted->assertSubject($subject); |
$subject string |
$intercepted->assertNotSubject($subject); |
$subject string |
$intercepted->assertBodyContainsString($content); |
$content string |
$intercepted->assertBodyNotContainsString($content); |
$content string |
$intercepted->assertRepliesTo($reply); |
$reply array, string |
$intercepted->assertNotRepliesTo($reply); |
$reply array, string |
$intercepted->assertCc($cc); |
$cc array, string |
$intercepted->assertNotCc($cc); |
$cc array, string |
$intercepted->assertBcc($cc); |
$bcc array, string |
$intercepted->assertNotBcc($cc); |
$bcc array, string |
$intercepted->assertSender($sender); |
$sender array, string |
$intercepted->assertNotSender($sender); |
$sender array, string |
$intercepted->assertReturnPath($returnPath); |
$returnPath string |
$intercepted->assertNotReturnPath($returnPath); |
$returnPath string |
Content Type Assertions |
---|
$intercepted->assertIsPlain(); |
$intercepted->assertIsNotPlain(); |
$intercepted->assertHasPlainContent(); |
$intercepted->assertDoesNotHavePlainContent(); |
$intercepted->assertIsHtml(); |
$intercepted->assertIsNotHtml(); |
$intercepted->assertHasHtmlContent(); |
$intercepted->assertDoesNotHaveHtmlContent(); |
$intercepted->assertIsAlternative(); |
$intercepted->assertIsNotAlternative(); |
$intercepted->assertIsMixed(); |
$intercepted->assertIsNotMixed(); |
Header Assertions | Parameters |
---|---|
$intercepted->assertHasHeader($header); |
$header string |
$intercepted->assertMissingHeader($header); |
$header string |
$intercepted->assertHeaderIs($header, $value); |
$header string$value string |
$intercepted->assertHeaderIsNot($header, $value); |
$header string$value string |
Priority Assertions | Parameters |
---|---|
$intercepted->assertPriority($priority); |
$priority int |
$intercepted->assertNotPriority($priority); |
$priority int |
$intercepted->assertPriorityIsHighest(); |
|
$intercepted->assertPriorityNotHighest(); |
|
$intercepted->assertPriorityIsHigh(); |
|
$intercepted->assertPriorityNotHigh(); |
|
$intercepted->assertPriorityIsNormal(); |
|
$intercepted->assertPriorityNotNormal(); |
|
$intercepted->assertPriorityIsLow(); |
|
$intercepted->assertPriorityNotLow(); |
|
$intercepted->assertPriorityIsLowest(); |
|
$intercepted->assertPriorityIsLowest(); |
Attachment Assertions | Parameters |
---|---|
$intercepted->assertHasAttachment($filename); |
$filename string |
$intercepted->assertHasAttachments(); |
|
$intercepted->assertMissingAttachment($filename); |
$filename string |
$intercepted->assertMissingAttachments(); |
|
$intercepted->assertHasEmbeddedImage($filename); |
$filename string |
$intercepted->assertHasEmbeddedImages(); |
|
$intercepted->assertMissingEmbeddedImage($filename); |
$filename string |
$intercepted->assertMissingEmbeddedImages(); |
Assertion Methods
Assertions | Parameters |
---|---|
$this->assertMailSentTo($to, $mail); |
$to array, string$mail AssertableMessage, Email |
$this->assertMailNotSentTo($to, $mail); |
$to array, string$mail AssertableMessage, Email |
$this->assertMailSentFrom($from, $mail); |
$from array, string$mail AssertableMessage, Email |
$this->assertMailNotSentFrom($from, $mail); |
$from array, string$mail AssertableMessage, Email |
$this->assertMailSubject($subject, $mail); |
$subject string$mail AssertableMessage, Email |
$this->assertMailNotSubject($subject, $mail); |
$subject string$mail AssertableMessage, Email |
$this->assertMailBodyContainsString($content, $mail); |
$content string$mail AssertableMessage, Email |
$this->assertMailBodyNotContainsString($content, $mail); |
$content string$mail AssertableMessage, Email |
$this->assertMailRepliesTo($reply, $mail); |
$reply array, string$mail AssertableMessage, Email |
$this->assertMailNotRepliesTo($reply, $mail); |
$reply array, string$mail AssertableMessage, Email |
$this->assertMailCc($cc, $mail); |
$cc array, string$mail AssertableMessage, Email |
$this->assertMailNotCc($cc, $mail); |
$cc array, string$mail AssertableMessage, Email |
$this->assertMailBcc($cc, $mail); |
$bcc array, string$mail AssertableMessage, Email |
$this->assertMailNotBcc($cc, $mail); |
$bcc array, string$mail AssertableMessage, Email |
$this->assertMailSender($sender, $mail); |
$sender array, string$mail AssertableMessage, Email |
$this->assertMailNotSender($sender, $mail); |
$sender array, string$mail AssertableMessage, Email |
$this->assertMailReturnPath($returnPath, $mail); |
$returnPath string$mail AssertableMessage, Email |
$this->assertMailNotReturnPath($returnPath, $mail); |
$returnPath string$mail AssertableMessage, Email |
Content Type Assertions | Parameters |
---|---|
$this->assertMailIsPlain($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsNotPlain($mail); |
$mail AssertableMessage, Email |
$this->assertMailHasPlainContent($mail); |
$mail AssertableMessage, Email |
$this->assertMailDoesNotHavePlainContent($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsHtml($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsNotHtml($mail); |
$mail AssertableMessage, Email |
$this->assertMailHasHtmlContent($mail); |
$mail AssertableMessage, Email |
$this->assertMailDoesNotHaveHtmlContent($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsAlternative($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsNotAlternative($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsMixed($mail); |
$mail AssertableMessage, Email |
$this->assertMailIsNotMixed($mail); |
$mail AssertableMessage, Email |
Header Assertions | Parameters |
---|---|
$this->assertMailHasHeader($header, $mail); |
$header string$mail AssertableMessage, Email |
$this->assertMailMissingHeader($header, $mail); |
$header string$mail AssertableMessage, Email |
$this->assertMailHeaderIs($header, $value, $mail); |
$header string$value string$mail AssertableMessage, Email |
$this->assertMailHeaderIsNot($header, $value, $mail); |
$header string$value string$mail AssertableMessage, Email |
Priority Assertions | Parameters |
---|---|
$this->assertMailPriority($priority, $mail); |
$priority int$mail AssertableMessage, Email |
$this->assertMailNotPriority($priority, $mail); |
$priority int$mail AssertableMessage, Email |
$this->assertMailPriorityIsHighest($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityNotHighest($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityIsHigh($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityNotHigh($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityIsNormal($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityNotNormal($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityIsLow($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityNotLow($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityIsLowest($mail); |
$mail AssertableMessage, Email |
$this->assertMailPriorityIsLowest($mail); |
$mail AssertableMessage, Email |
Attachment Assertions | Parameters |
---|---|
this->assertMailHasAttachment($filename); |
$filename string$mail AssertableMessage, Email |
this->assertMailHasAttachments(); |
$mail AssertableMessage, Email |
this->assertMailMissingAttachment($filename); |
$filename string$mail AssertableMessage, Email |
this->assertMailMissingAttachments(); |
$mail AssertableMessage, Email |
this->assertMailHasEmbeddedImage($filename); |
$filename string$mail AssertableMessage, Email |
this->assertMailHasEmbeddedImages(); |
$mail AssertableMessage, Email |
this->assertMailMissingEmbeddedImage($filename); |
$filename string$mail AssertableMessage, Email |
this->assertMailMissingEmbeddedImages(); |
$mail AssertableMessage, Email |
You should use each item of the interceptedMail()
collection as the mail object for all assertions.
If you are injecting your own headers or need access to other headers in the email, use this assertion to verify they exist and are set properly. These assertions require the header name and the compiled email.
Other assertions
Since $this->interceptedMail()
returns a collection of AssertableMessage
objects. You are free to dissect and look into those objects using any methods available to Symfony's Email API. Head over to the Symfony Email Docs for more detailed info.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] or [email protected] instead of using the issue tracker.
Credits
Sponsorship
Development of this package is sponsored by Kirschbaum Development Group, a developer driven company focused on problem solving, team building, and community. Learn more about us or join us!
License
The MIT License (MIT). Please see License File for more information.