2017 © Pedro Peláez
 

library laravel-email-templates-optimization

Optimize your email templates' styles via native Laravel templating mechanism.

image

lanin/laravel-email-templates-optimization

Optimize your email templates' styles via native Laravel templating mechanism.

  • Saturday, October 15, 2016
  • by lanin
  • Repository
  • 1 Watchers
  • 3 Stars
  • 2,550 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 2 Versions
  • 5 % Grown

The README.md

Laravel-Email-Templates-Optimization

Optimize your email templates' styles via native Laravel templating mechanism., (*1)

Build Status Code Coverage Scrutinizer Code Quality, (*2)

If you want to send an HTML email you can't just send it with <style></style> tag in it, or link a stylesheet. Most of the email clients will cut it and clients will see your email without any styles., (*3)

The only approach to achieve best email quality is to convert all your styles int inline style="" attributes like this:, (*4)

Source

<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
  <style>
    body {
      font-size: 14px;
    }
    h1 {
      font-size: 20px;
    }
    a {
      color: #333;
    }
  </style>
</head>
<body>
  <h1>Hello!</h1>
  <p class="content">
    <a href="https://laravel.com">Laravel</a>
  </p>
</body>
</html>

Result

<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
</head>
<body style="font-size: 14px;">
  <h1 style="font-size: 20px;">Hello!</h1>
  <p class="content">
    <a href="https://laravel.com" style="color: #333;">Laravel</a>
  </p>
</body>
</html>

How to achieve that?

  • You can precompile your templates, and store and send them as is. But your compiled templates will become too hard to maintain.
  • Or you can compile them on every email send like in https://github.com/fedeisas/laravel-mail-css-inliner package. But it will cause an enormous overhead.

With this in mind I made this engine. It compiles css into email templates and at the same time utilises native Laravel's Blade syntax and compile-and-cache approach., (*5)

This means that you can store your email templates as before and they will be compiled on the fly and then cached in order not to recompile every time!, (*6)

Installation

PHP 5.5.9+ or HHVM 3.3+, Composer and Laravel 5.1+ are required., (*7)

To get the latest version of Laravel-Email-Templates-Optimization, simply install it via composer., (*8)

$ composer require "lanin/laravel-email-templates-optimization:0.1.*"

Once package is installed, you need to register the service provider. Open up config/app.php and add the following to the providers key., (*9)

Lanin\Laravel\EmailTemplatesOptimization\ServiceProvider::class,

Usage

What you have to do is just rename your email templates' files from *.blade.php to *.email.php and that's it! This Engine will do the rest for you!, (*10)

Configuration

Furthermore you can tell the engine what static css files to use with your templates to not duplicate them in each of them., (*11)

For this you set copy this into your view.php config:, (*12)

    'emails' => [
        /*
        |--------------------------------------------------------------------------
        | Css Files
        |--------------------------------------------------------------------------
        |
        | List of absolute paths to static css files to use in your email templates.
        |
        | Example: realpath(resource_path('assets/css/emails.css'))
        |
        */
        'css_files' => [

        ],
    ],

Contributing

Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities., (*13)

The Versions

15/10 2016

dev-master

9999999-dev

Optimize your email templates' styles via native Laravel templating mechanism.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel framework email template css optimization

15/10 2016

0.1.0

0.1.0.0

Optimize your email templates' styles via native Laravel templating mechanism.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel framework email template css optimization