Package

Fedeisas Laravel Mail Css Inliner

Inline the CSS of your HTML emails using Laravel

Package

fedeisas/laravel-mail-css-inliner

View on GitHub →

Laravel Mail CSS Inliner

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.

Installation and compatability

Starting with version 5 this package requires PHP 8.0 and Laravel 9.0 or higher.

Using an older version of PHP / Laravel?

If you are on a PHP version below 8.0 or a Laravel version below 9.0 just use version 4.* of this package.

How?

Using a wonderful CSS inliner package wrapped in a Symfony Mailer plugin and served as a Service Provider it just works without any configuration. Since this is a Symfony Mailer plugin, it will automatically inline your css when parsing an email template. You don't have to do anything!

Turns style tag:

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

Or the link tag:

<html>
<head>
<link rel="stylesheet" type="text/css" href="https://github.com/fedeisas/laravel-mail-css-inliner/blob/master/tests/css/test.css">
</head>
<body>
<h1>Hey you</h1>
</body>
</html>

Into this:

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

Installation

This package needs Laravel 9.x.

Begin by installing this package through Composer. Require it directly from the Terminal to take the last stable version:

composer require fedeisas/laravel-mail-css-inliner

At this point the inliner should be already working with the default options. If you want to fine-tune these options, you can do so by publishing the configuration file:

php artisan vendor:publish --provider='Fedeisas\LaravelMailCssInliner\LaravelMailCssInlinerServiceProvider'

and changing the settings on the generated config/css-inliner.php file.

Contributing

  • Install project dependencies:
composer install
  • Execute tests with the following command:
./vendor/bin/phpunit

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

Fedeisas Laravel Mail Css Inliner Related Articles

Laravel News Digest – Behind the Scenes image

Laravel News Digest – Behind the Scenes

Read article
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
Pushsilver logo

Pushsilver

Pushsilver is simple invoicing for freelancers and small studios — send polished invoices, automate reminders, and get paid on time without the bloat.

Pushsilver
No Compromises logo

No Compromises

Joel and Aaron, the two seasoned devs from the No Compromises podcast, are now available to hire for your Laravel project. ⬧ Flat rate of $9500/mo. ⬧ No lengthy sales process. ⬧ No contracts. ⬧ 100% money back guarantee.

No Compromises
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift