Laravel 邮件通知

Laravel mail notification

使用 Laravel 5.3,我可以在 Notification:

中定义收件人
// In a class extending Illuminate\Notifications\Notification :

public function toMail($notifiable)
{
    return (new MailMessage)->line('hello')->to('me@example.com');
}

因为 Laravel 5.4 (relevant commit),我不能使用 to。如何更新我的代码?我需要向未绑定到用户或对象的电子邮件发送通知。如何"hack"这些缺失的功能?

你看过同一个文件的master分支了吗?

已还原:

https://github.com/laravel/framework/blob/master/src/Illuminate/Notifications/Channels/MailChannel.php

文档中还有 to()

use App\Mail\InvoicePaid as Mailable;

/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return Mailable
 */
public function toMail($notifiable)
{
    return (new Mailable($this->invoice))->to($this->user->email);
}

希望对您有所帮助。

使用电子邮件创建一个最小 class 属性:

class MyNotifiable
{
    use \Illuminate\Notifications\Notifiable;

    public $email;

    public function __construct($email)
    {
        $this->email = $email;
    }
}

然后在您的最小 class:

上调用 notify
(new MyNotifiable('me@example.org'))->notify(new MyNotification);

而且有效。