agrandesr / php-mailer-action
这个自定义操作是PHPMailer包在Agile Router上的实现,通过使用Agile Router的自定义操作,以非常简单的方式发送电子邮件。
v0.2
2023-02-24 18:51 UTC
Requires
- phpmailer/phpmailer: 6.7.1
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