如何设置来自2个查询的数据的邮件程序

时间:2019-07-15 10:13:47

标签: php laravel email

我想为我的Laravel应用制作一个自动邮件。

我使用1条查询来检索用户及其电子邮件地址。然后,我想使用第二个查询来检索与另一个表中的用户相关的数据。 最后,必须使用此信息创建电子邮件并自动发送。

可以通过刀片还是在控制器中进行构建?

1 个答案:

答案 0 :(得分:0)

是的,可以按照您的指示进行。示例:

控制器

...
$user = User::firstOrFail($id);
$order =  Order::firstOrFail($order_id);

Mail::send(new Notification($user, $order));
...

可邮寄

class Notification extends Mailable
{
    use Queueable, SerializesModels;

    public $user;
    public $order;

    public function __construct(User $user, Order $order)
    {
        $this->user = $user;
        $this->order = $order;
    }

    public function build()
    {
        return $this->from('example@example.com', 'Example'))
            ->subject('Order processed')
            ->view('emails.notification')
            ->with([
                'name' => $this->user->name,
                'code' => $this->order->code,
                'amount' => $this->order->amount,
            ]);
    }
}

查看刀片服务器

Hi, {{$name}},

Your order {{$code}} has already been processed for an amount of {{$amount}}.

A cordial greeting.

请记住使用邮件服务器的值配置.env文件。

gmail的示例

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls

More information on creating mailables

如果有帮助,请接受它作为正确答案。谢谢。

亲切的问候。