/laravel-mail-css-inliner

Inline the CSS of your HTML emails using Laravel

Primary LanguagePHPMIT LicenseMIT

Laravel Mail CSS Inliner

Travis Badge Coverage Status Latest Stable Version Latest Unstable Version Total Downloads License

Why?

Most email clients won't render CSS (on a <link> or a <style>). The solution is inline your CSS directly on the HTML. Doing this by hand easily turns into unmantainable templates. The goal of this package is to automate the process of inlining that CSS before sending the emails.

How?

Using a wonderful CSS inliner package wraped in a SwiftMailer plugin and served as a Service Provider it justs works without any configuration.

Turns:

<html>
    <head>
        <style>
            h1 {
                font-size: 24px;
                color: #000;
            }
        </style>
    </head>
    <body>
        <h1>Hey you</h1>
    </body>
</html>

Into this:

<html>
    <head>
    </head>
    <body>
        <h1 style="font-size: 24px; color: #000;">Hey you</h1>
    </body>
</html>

Installation

Begin by installing this package through Composer. Edit your project's composer.json file to require fedeisas/laravel-mail-css-inliner.

{
  "require": {
        "laravel/framework": "4.1.*",
        "fedeisas/laravel-mail-css-inliner": "~1.3"
    }
}

Next, update Composer from the Terminal:

$ composer update

Once this operation completes, the final step is to add the service provider. Open app/config/app.php, and add a new item to the providers array.

'Fedeisas\LaravelMailCssInliner\LaravelMailCssInlinerServiceProvider',

Contributing

$ composer install
$ ./vendor/bin/phpunit

In addition to a full test suite, there is Travis integration.

Found a bug?

Please, let me know! Send a pull request or a patch. Questions? Ask! I will respond to all filed issues.

Inspiration

This package is greatly inspired, and mostly copied, from SwiftMailer CSS Inliner. I just made an easy drop-in solution for Laravel.

License

This package is open-sourced software licensed under the MIT license