waavi / mailman
为Laravel 5提供带有CSS内联的简单邮件发送。
2.0.7
2017-10-06 16:43 UTC
Requires
- illuminate/mail: >=5.1 <5.6
- illuminate/queue: >=5.1 <5.6
- illuminate/support: >=5.1 <5.6
- illuminate/view: >=5.1 <5.6
- tijsverkoyen/css-to-inline-styles: 2.*
Requires (Dev)
- mockery/mockery: ^0.9.4
- orchestra/testbench: ^3.1
- phpunit/phpunit: ^4
README
介绍
Mailman 包含了 Laravel 的所有邮件功能,并允许你
- Keep your email css files in an external file, and automatically inline them when sending an email.
- Set the language in which the email should be sent, without affecting the rest of your application.
- Avoid the annoying use of callbacks.
WAAVI 是一家位于西班牙马德里的网络开发工作室。你可以在waavi.com了解更多关于我们的信息。
Laravel 兼容性
安装
通过 composer 安装
composer require waavi/mailman 2.0.x
或手动编辑你的 composer.json 文件
"require": {
"waavi/mailman": "2.0.x"
}
发布配置文件
php artisan vendor:publish
在 config/app.php 中,将以下条目添加到 providers 数组的末尾
\Waavi\Mailman\MailmanServiceProvider::class,
并编辑 aliases 数组以包含
'Mailman' => \Waavi\Mailman\Facades\Mailman::class,
使用方法
基本示例
使用方法与 Laravel 的 Mail 非常相似,不需要回调。实际上,Mailman 的使用方式就像你使用视图一样。比如说你在 views/emails/email 目录下有一个邮件视图。你可以通过以下方式发送邮件
Mailman::make('emails.email')->to('info@example.com')->subject('test')->send();
发件地址和一般邮件配置将从 app/mail.php 中加载,而邮件样式表配置是通过 mailman.php 配置文件完成的。
将数据传递到邮件的视图
如果你想将数据传递到视图中,你可以通过 make 方法或 with 方法实现,就像在视图中一样
Mailman::make('emails.welcome', array('user' => $user))->to('user@example.com')->subject('welcome')->send();
Mailman::make('emails.welcome')->with(['user', $user])->to('user@example.com')->subject('welcome')->send();
Mailman::make('emails.welcome')->with('user', $user)->to('user@example.com')->subject('welcome')->send();
设置地区
要设置邮件发送的地区,你可以使用 set locale 方法
Mailman::make('emails.basic')->setLocale('es')->to('user@example.com')->subject('hello')->send();
设置要使用的 CSS 文件
你可以设置一个与默认不同的 CSS 文件。参数必须是相对于基本文件夹的完整路径
Mailman::make('emails.basic')->setCss('resources/assets/css/private.css')
队列邮件
你可以像使用 Laravel 的 Mail 一样队列邮件。要通过队列发送邮件
Mailman::make('emails.basic')->to...->queue() // Queue in default queue.
Mailman::make('emails.basic')->to...->queue('queue_name') // Queue in queue_name queue.
Mailman::make('emails.basic')->to...->later(5) // Send email after 5 seconds.
Mailman::make('emails.basic')->to...->laterOn(5, 'queue_name')
模拟发送邮件
如果你使用的是 Laravel 的 Homestead,建议的方式是安装 MailCatcher。
获取邮件字符串
对于调试,能够打印出邮件的内容非常有用。使用 Mailman,你可以使用 Mailman::show() 获取邮件的主体内容
Mailman::make('emails.basic')->to('user@example.com')->subject('hello')->show();
常用方法(Illuminate\Mail\Message)
Illuminate\Mail\Message 中所有方法都通过 Mailman 提供
Mailman::make('emails.basic')->to('john@doe.it')
Mailman::make('emails.basic')->to('john@doe.it', 'John Doe') // Set the recipient.
Mailman::make('emails.basic')->from('john@doe.it')
Mailman::make('emails.basic')->from('john@doe.it', 'John Doe') // Set from field.
Mailman::make('emails.basic')->sender('john@doe.it')
Mailman::make('emails.basic')->sender('john@doe.it', 'John Doe') // Set sender.
Mailman::make('emails.basic')->returnPath('john@doe.it') // Set return path.
Mailman::make('emails.basic')->cc('john@doe.it')
Mailman::make('emails.basic')->cc('john@doe.it', 'John Doe') // Add carbon copy.
Mailman::make('emails.basic')->bcc('john@doe.it')
Mailman::make('emails.basic')->bcc('john@doe.it', 'John Doe') // Add blind carbon copy.
Mailman::make('emails.basic')->replyTo('john@doe.it')
Mailman::make('emails.basic')->replyTo('john@doe.it', 'John Doe') // Add reply to.
Mailman::make('emails.basic')->subject('Subject text') // Add subject
Mailman::make('emails.basic')->priority(5) // Set priority level
Mailman::make('emails.basic')->attach('file/test.pdf', $options) // Attach file
Mailman::make('emails.basic')->attachData($data, $name, $options) // Attach in-memory data
Mailman::make('emails.basic')->embed('file/test.jpg') // Embed file and get cid
Mailman::make('emails.basic')->embedData($data, $name, $contentType) // Embed data