engeni / hermes-driver

Engeni - Hermes 邮件驱动程序

v1.1.6 2023-02-24 13:43 UTC

This package is auto-updated.

Last update: 2024-09-24 17:09:02 UTC


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