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