square3 / trigger-email
发送自动电子邮件的软件包
该软件包的规范仓库似乎已消失,因此该软件包已被冻结。
2.0.9
2017-04-26 19:07 UTC
Requires
- php: >=5.5.9
- laravel/framework: 5.2.*
README
本软件包提供了一种发送“自动”电子邮件的特性和
安装
执行以下命令
composer require square3/trigger-email
通过composer安装后,将以下行添加到config/app.php
文件中
Square3\TriggerEmail\TriggerEmailServiceProvider::class
配置
发布配置文件
php artisan vendor:publish --tag=config
执行上述命令后,将trigger_email.php
文件复制到config/trigger_email.php
。
配置.env
文件,以便系统可以发送电子邮件,并添加MAIL_PROJECT_NAME
常量以及电子邮件配置。
MAIL_PROJECT_NAME="Nome que ficará como remetente - Nome do projeto"
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@domain.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
清除配置缓存,以便使.env
中的更改生效
php artisan config:cache
使用方法
在包含要发送电子邮件的方法的控制器中导入此特性和添加对sendEmail
方法的调用
<?php
namespace Laraveldaily\Timezones;
use Square3\TriggerEmail\TriggerEmail;
class TimezonesController
{
use TriggerEmail;
public function index()
{
$this->setEmailView('tracking')
->setToName('João da Silva')
->setToEmail('joao@gmail.com')
->sendEmail();
// Do anything
}
}
特性
该特性由一个负责在请求时发送电子邮件模板的方法组成。它还包含三个属性,具体如下
$emailView
- 要发送的模板,必须包含以下值之一- register - 当客户在网站上注册时
- purchase - 当在网站上完成购买时
- tracking - 当在管理员中注册产品跟踪码时
$toEmail
- 收件人电子邮件地址$toName
- 收件人姓名
// trait TriggerEmail.php
/**
* @param string $template -- Template to be sent
*/
protected $emailView;
/**
* @param $toEmail -- Recipient's email address
*/
protected $toEmail;
/**
* @param null $toName -- Recipient's email name
*/
protected $toName;
/**
* This property has three options to define the template of emails to send
*/
protected $templates = [
'register' => 'trigger_email::customer_register',
'purchase' => 'trigger_email::purchase',
'tracking' => 'trigger_email::tracking_code',
];
private function sendEmail()
{
if (isset($this->emailView) && isset($this->toEmail)) {
Mail::queue($this->templates[$this->emailView], [], function ($message){
$message->from(config('trigger_email.from_email'), config('trigger_email.from_name'))
->to($this->toEmail, $this->toName)
->subject(trans("trigger_email::messages.{$this->emailView}.subject"));
});
}
return;
}
待办事项
- 完成电子邮件模板
- 将模板放置在多语言文件中
如有疑问、建议或贡献,请联系以下电子邮件
作者和支援
TGOO Worldwide
Ramires Gomes
系统开发分析师
ramires.gb@gmail.com
$emailData = [
'customer' => $request->toArray(),
'cart' => $cart->toArray(),
'order' => str_pad($sales->id, 6, '0', STR_PAD_LEFT),
'shipping_cost' => floatval($shippingCost['pac']['valor']),
'total' => $total
];
$this->setEmailView('purchase')
->setToName($customer->name)
->setToEmail($customer->customer->email)
->sendEmail($emailData);