Skip to content

mikeerickson/laravel-mail-preview

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Mail Preview Driver

Latest Version on Packagist Software License Total Downloads

This package introduces a new preview mail driver for laravel, when selected it will produce the content of the sent mail and save it as .html & .eml documents.

Installation

Begin by installing the package through Composer. Run the following command in your terminal:

composer require themsaid/laravel-mail-preview

Then publish the config file:

php artisan vendor:publish --provider="Themsaid\MailPreview\MailPreviewServiceProvider"

Finally, change MAIL_DRIVER to preview in your .env file:

MAIL_DRIVER=preview

How it works

On every email sent a .html & a .eml documents will be generated in storage/email-previews with a name that includes the first receiver and the subject:

1457904864_jack_at_gmail_com_invoice_000234.html
1457904864_jack_at_gmail_com_invoice_000234.eml

You can open the .html file in a web browser, or open the .eml file in your default email client to have a realistic look at the final output.

Preview in a web browser

When you open the .html file in a web browser you'll be able to see how your email will look like, however there might be some differences that varies from an email client to another.

At the beginning of the generated file you'll find a HTML comment with all the message info:

<!--
From:{"[email protected]":"Acme HQ"},
to:{"[email protected]":"Jack Black"},
reply-to:{"[email protected]"},
cc:[{"[email protected]":"Acme Finance"}, {"[email protected]":"Acme Management"}],
bcc:null,
subject:Invoice #000234
-->

Package Configurations

From the configuration file you'll be able to change the previews output location as well as the maximum life time for keeping previews, after this time old previews will get removed.

Logged out after clicked on the preview link

You always will lose your current session, if you click on the generated notification link. This is because Laravel stores the session in an encrypted cookie. To change this behavior, you have to adjust the middleware property in the config/mailpreview.php file to match the following snippet:

    'middleware' => [
        \App\Http\Middleware\EncryptCookies::class,
    ],

About

Mail driver that saves sent mail to disk.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%