agrandesr/php-mailer-action

这个自定义操作是PHPMailer包在Agile Router上的实现,通过使用Agile Router的自定义操作,以非常简单的方式发送电子邮件。

v0.2 2023-02-24 18:51 UTC

This package is auto-updated.

Last update: 2024-09-24 22:20:18 UTC


README

此包是Agrandesr/agile-router (v1.0+)的扩展。

这个自定义操作是PHPMailer包在Agile Router上的实现,通过使用Agile Router的自定义操作,以非常简单的方式发送电子邮件。

安装

首先,我们需要引入此包

composer require agrandesr/php-mailer-action

然后,在运行方法之前将此包添加到路由器中。

require './vendor/autoload.php';

use Agrandesr\Router;

$router = new Router();

$router->addCustomAction('mail','App\\CustomActions\\PhpMailerAction');

$router->run();

接下来,您需要修改.env文件以包含您的邮件服务器数据

MAIL_HOST=domain.mail.example
MAIL_PORT=587
MAIL_USERNAME=no-reply@test.com
MAIL_PASSWORD=*******************
#MAIL_SECURITY=TLS
MAIL_SENDNAME=EmailTest

现在,您可以在您的路由文件中使用新的操作。

{
    "mail":{
        "GET":{
            "execute":[
                {
                    "type":"mail",
                    "content":{
                        "addAddress":"example@test.com",
                        "addCC":"exampleCC@test.com",
                        "addBCC":"exampleBCC@test.com",
                        "addAttachment":[["src/file/image.png","ImageName.png"]],
                        "body":"src/template/mail.html",
                        "altBody":"No worries, was only a test"
                    }
                }
            ]
        }
    }
}

就这样,您可以创建一个端点来发送电子邮件,非常简单。

内容参数

正如您在示例中看到的,"PhpMailer"操作具有以下参数

  • addAddress['required']
  • addCC['optional']
  • addBCC['optional']
  • addAttachment['optional']
  • body['optional']:您可以添加一个源方向,如"src/template.html",或者直接写入html代码。
  • altBody['optional']
  • envFlag:您可以通过添加标志来更改环境变量键名,以允许多个邮件服务器。

环境变量

您可以使用envFlag为单个项目设置多个邮件服务器。envFlag将endFlag的值添加到envFlag键的中间。例如

{
    "mail":{
        "GET":{
            "execute":[
                {
                    "type":"mail",
                    "content":{
                        "envFlag":"CALIFORNIA"
                        "addAddress":"california@test.com",
                        "body":"src/template/mail.html"
                    }
                },
                {
                    "type":"mail",
                    "content":{
                        "envFlag":"TEXAS"
                        "addAddress":"texas@test.com",
                        "body":"src/template/mail.html"
                    }
                }
            ]
        }
    }
}

对于最后一个示例,您需要完成其他环境变量

MAIL_CALIFORNIA_HOST=domain.mail.example
MAIL_CALIFORNIA_PORT=587
MAIL_CALIFORNIA_USERNAME=no-reply@test.com
MAIL_CALIFORNIA_PASSWORD=*******************
MAIL_CALIFORNIA_SENDNAME=EmailTest

MAIL_TEXAS_HOST=domain.mail.example
MAIL_TEXAS_PORT=587
MAIL_TEXAS_USERNAME=no-reply@test.com
MAIL_TEXAS_PASSWORD=*******************
MAIL_TEXAS_SENDNAME=EmailTest