engeni / hermes-driver
Engeni - Hermes 邮件驱动程序
v1.1.6
2023-02-24 13:43 UTC
Requires
- php: >=7.3
README
Engeni 的 Hermes 邮件驱动程序是一个邮件驱动程序,允许您使用 Laravel 邮件功能通过 Hermes 服务发送电子邮件。
请注意,您需要一个 Engeni API 密钥才能访问 Hermes。
请阅读文档 https://engeni.atlassian.net/wiki/spaces/HRMS
安装
使用 composer 安装包
composer require engeni/hermes-driver
配置
步骤 1: 配置 .env 文件
在 .env 文件中,写入以下变量以及适用于您的开发环境的值。以下仅为示例:
MAIL_MAILER="hermes"
然后,也在 .env 文件中添加以下内容:
########### BEGIN ENGENI VARS ###########
### ...
## Engeni API Hermes
ENGENI_HERMES_API_URL="${ENGENI_API_GATEWAY_URL}/hrms"
ENGENI_HERMES_API_KEY="xGjRHQkVhIHccYSXyp7C5P2AZngCyMaK"
########### END ENGENI VARS ###########
步骤 2: 配置 App
在 config/app.php 中添加以下提供者
'providers' => [
//...
// Illuminate\Mail\MailServiceProvider::class,
\Engeni\HermesDriver\HermesMailServiceProvider::class,
],
步骤 3: Hermes 驱动程序配置
将以下信息添加到 Laravel 配置目录下的 config/engeni.php 文件中
return [
// ...
'hermes' => [
'api' => [
'url' => env('ENGENI_HERMES_API_URL', env('ENGENI_API_GATEWAY_URL') .'/hrms'),
'key' => env('ENGENI_HERMES_API_KEY'),
'ssl' => true
],
'options' => [
'service_id' => env('SERVICE_ID'),
'reply_to' => env('ENGENI_HERMES_REPLY_TO'),
'reply_to_name' => env('ENGENI_HERMES_REPLY_TO_NAME')
]
]
]
您可以在 ./src/engeni.php 中找到上述代码
步骤 4: Laravel 邮件配置
在 mail.php 配置中添加
'hermes' => [
'transport' => 'hermes',
],
示例
Hermes 驱动程序与任何其他 Laravel 邮件驱动程序的工作方式完全相同。
创建可邮寄对象
php artisan make:mail OrderShipped
这是最近创建的 Mailable 类
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class OrderShipped extends Mailable
{
use Queueable, SerializesModels;
public $data;
public function __construct(array $data): void
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.order-shipped');
}
}
注意:您将需要创建一个 Blade 模板,例如 /resources/views/emails/order-shipped.blade.php
<div>
Data: {{ print_r($data) }}
</div>
然后发送电子邮件
use App\Mail\OrderShipped;
use Illuminate\Support\Facades\Mail;
Mail::to($request->user())
->cc($moreUsers)
->bcc($evenMoreUsers)
->send(new OrderShipped($data));
有关更多信息,请参阅 https://laravel.net.cn/docs/9.x/mail#sending-mail