binomeway/nova-contact-tool

此包已被弃用,不再维护。未建议替代包。

一个 Laravel Nova 工具,用于配置联系详情并基于这些详情发送邮件。

v1.0.6 2021-08-12 13:47 UTC

This package is auto-updated.

Last update: 2024-07-12 20:04:37 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

用于管理联系信息(如:电子邮件、电话、社交媒体和表单)的包。

安装

您可以通过 composer 安装此包

composer require binomeway/nova-contact-tool

安装 nova-settings

composer require optimistdigital/nova-settings

将以下行添加到 NovaServiceProvider.php 文件中的 boot 方法,以便能够在 Nova 中修改联系数据。

// NovaServiceProvider.php 
public function tools()
{
    return [
        \OptimistDigital\NovaSettings\NovaSettings\NovaSettings::make(),
        \BinomeWay\NovaContactTool\NovaContactTool\NovaContactTool::make(),
    ];
}

您必须发布并运行迁移

php artisan vendor:publish --provider="BinomeWay\NovaContactTool\ToolServiceProvider" --tag="nova-contact-tool-migrations"
php artisan migrate

如果需要,您可以发布配置文件。

php artisan vendor:publish --provider="BinomeWay\NovaContactTool\ToolServiceProvider" --tag="nova-contact-tool-config"

这是发布配置文件的内容

return [
    'default_to' => '',
    'default_subject' => '',
    'save_messages' => true,
    'save_subscribers' => true,
    'priority' => 3,
    'delete_on_unsubscribe' => false,
    'enable_gmail_api' => env('ENABLE_GMAIL_API', false),
];

用法

订阅者

创建一个新的订阅者。

use BinomeWay\NovaContactTool\Facades\Contact;

$subscriber = Contact::subscribe($email, $name, $phone);
use BinomeWay\NovaContactTool\Facades\Contact;

Contact::unsubscribe($subscriber);

发送邮件

发送邮件非常简单。

use BinomeWay\NovaContactTool\Facades\Contact;

Contact::send($message, $subscriber);

示例

use BinomeWay\NovaContactTool\Facades\Contact;
use BinomeWay\NovaContactTool\Models\Subscriber;
// Perform validations
// Create a subscriber
$subscriber = new Subscriber();
// or use the subscribe method
$subscriber = Contact::subscribe($email, $name, $phone);

$message = 'Hello!';
$to = 'hello@binomeway.com'; // Optional

$contact = Contact::send($message, $subscriber, $to);

// Checking if the mail was sent.

if($contact->hasSucceded()){
     flash()->message('success', 'Yay! Email was sent.');
}

if($contact->hasFailed()){
    flash()->message('error', $contact->errorMessage());
}

使用 Gmail API 发送

首先您需要启用 Gmail API 功能。

ENABLE_GMAIL_API=true

然后,在 .env 文件中添加凭证。

GOOGLE_PROJECT_ID=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=

或者通过添加到路径:storage/gmail/tokens/gmail-json.json 使用 JSON 凭证文件。

添加更多选项

GOOGLE_ALLOW_MULTIPLE_CREDENTIALS=true
GOOGLE_ALLOW_JSON_ENCRYPT=true

下一步是使用管理面板授权一个 Gmail 账户。

这就完成了。现在您可以使用相同的 send 方法,它将正常工作。

注意:在 localhost 上授权登录将不会工作。Gmail 不允许本地域名。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅 我们的安全策略

致谢

许可协议

MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件