square3/trigger-email

发送自动电子邮件的软件包

该软件包的规范仓库似乎已消失,因此该软件包已被冻结。

2.0.9 2017-04-26 19:07 UTC

This package is auto-updated.

Last update: 2020-01-05 22:54:01 UTC


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);