rebelmiles / laravel-blinky
Laravel 中 Inky 邮件模板的基础
Requires
- illuminate/support: 5.*
- illuminate/view: 5.*
- rebelmiles/inky: 1.*
- symfony/css-selector: 4.*
- symfony/dom-crawler: 4.*
- tijsverkoyen/css-to-inline-styles: ^2.2
Requires (Dev)
- graham-campbell/testbench: ^3.3
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ~5.4
This package is auto-updated.
Last update: 2024-09-29 05:02:28 UTC
README
基于 Laravel Inky 的包,由 petecoop 创建
遗憾的是,该包大约有一年没有更新,不能安装到当前的 Laravel 版本 5.5、5.6 和 5.7 上。
允许您在 Laravel 中优雅地使用 Foundation 的 Inky 邮件模板。
任何扩展名为 .inky.php
的视图都将与 Inky 和 Blade 一起编译,使您能够无缝地一起使用这两个模板引擎。CSS 将自动内联,以便在不支持外部样式的电子邮件客户端中正常工作。
安装
使用 composer 需要
composer require vanderb/laravel-blinky
安装后,您需要注册服务提供者。打开 config/app.php
并将以下内容添加到 providers
键
Vanderb\LaravelBlinky\BlinkyServiceProvider::class
用法
请参阅 Foundation for Emails 文档 了解如何使用 Inky 和 Foundation for Emails CSS 的完整用法。
创建一个 Inky 视图,例如 emails/welcome.inky.php
<container> <row> <columns>Welcome, {{ $name }}</columns> </row> </container>
在 Laravel 中像平常一样使用 Mail
Mail::send('emails.welcome', ['name' => $user->name], function ($m) use ($user) { $m->from('hello@app.com', 'Your Application'); $m->to($user->email, $user->name)->subject('Welcome!'); });
您可以为继承而创建一个 Blade 布局,例如 emails/layout.inky.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width"/> <link rel="stylesheet" href="foundation-emails.css"> </head> <body> @yield('content') </body> </html>
然后
@extends('emails.layout') @section('content') <container> <row> <columns>Welcome, {{ $name }}</columns> </row> </container> @stop
CSS 内联
<style>
和 <link rel="stylesheet">
将自动内联。
您的 <link rel="stylesheet">
的 href
位置解析为 resources/assets/css
目录,因此在上述示例中它期望在 resources/assets/css/foundation-emails.css
中有一些 CSS。
这里有一些关于电子邮件中 CSS 的有用参考:电子邮件客户端 CSS 支持指南
忽略 CSS 内联
也许您想忽略 CSS 内联。
只需将以下设置更新到 config/views.php
'laravel_blinky' => [ 'use_inliner' => false ]