waavi/mailman

为Laravel 5提供带有CSS内联的简单邮件发送。

维护者

详细信息

github.com/Waavi/mailman

源代码

问题

安装次数: 2,812

依赖: 0

建议者: 0

安全: 0

星级: 3

关注者: 7

分支: 7

开放问题: 3

语言:HTML

2.0.7 2017-10-06 16:43 UTC

This package is auto-updated.

Last update: 2024-09-13 23:09:23 UTC


README

Latest Version on Packagist Software License Build Status Total Downloads

介绍

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