使用Mailgun和Bogardo进行Laravel 5.5电子邮件设置

时间:2018-01-08 23:37:39

标签: php laravel email mailgun

我正在尝试使用Mailgun在我的Laravel 5.5应用中设置自动电子邮件通知。我安装了Mailgun SDK以及推荐的Laravel库--Bogardo。我使用Bogardo库而不是仅仅使用Mailgun SDK或内置Laravel电子邮件功能的原因是这些都不允许点击跟踪,跳出和其他分析功能(我知道)。我可以使用Tinker发送电子邮件。但是,我并不是100%确定如何正确地调用我的新邮件来发送电子邮件。这是我的可邮寄课程:

<div class="modal-body">${deal[i].deals}</div>

我打电话的时候:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class BaseEmail extends Mailable
{
    use Queueable, SerializesModels;

    /**
    * Create a new message instance.
    *
    * @return void
    */
    public function __construct()
    {
        //
    }

    /**
    * Build the message.
    *
    * @return $this
    */
    public function build()
    {
        $data = ['This is a message from Mailgun!'];

        return Mailgun::raw($data, function($message) {
            $message
                ->to('email@domain.com', 'Name Name')
                ->subject('Yoohoo!')
                ->from('otheremail@domain.com', 'Name')
                ->tag(['tag','tag2']);
        });
    }
}

我收到以下错误

$mail = new App\Mail\BaseEmail();
$mail->send();

TypeError: Too few arguments to function Illuminate\Mail\Mailable::send(), 0 passed in /web/vendor/psy/psysh/src/Psy/ExecutionLoop/Loop.php(90) : eval()'d code on line 1 and exactly 1 expected

我得到了

$mail->send('this');

很抱歉,如果这是微不足道的,但是我一直在关注他们的文档,并且用Google搜索了所有我能想到的运气。

任何方向都很棒!

谢谢!

2 个答案:

答案 0 :(得分:1)

看来Bogardo套餐不支持Laravel Mailables ......

https://github.com/Bogardo/Mailgun/issues/72

答案 1 :(得分:0)

当您使用send()时,您不需要使用raw()方法。此代码会发送电子邮件:

Mailgun::raw($data, function($message) {
    $message->to('email@domain.com', 'Name Name')
            ->subject('Yoohoo!')
            ->from('otheremail@domain.com', 'Name')
            ->tag(['tag','tag2']);
});

当您使用该套餐时,您也不需要使用Mailable