Laravel 5.5邮件中包含用户名

时间:2017-10-25 06:37:12

标签: laravel laravel-5 laravel-5.5

我想我想念一些非常简单的东西,但我有一个这样的剧本:

\Mail::to( User::all() )
             ->send( new NotificationEmail($notification) );

class NotificationEmail extends Mailable {
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @param Notification $notification
     *
     */
    public function __construct( Notification $notification ) {
        $this->notification = $notification;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build() {
        $notification = $this->notification;

        return $this
            ->from( [
                'address' => \env( 'MAIL_DEFAULT_SENDER' ),
                'name'    => \env( 'APP_NAME' )
            ] )
            ->view( 'email.notification.ready' );
    }
}

现在我希望电子邮件信息以

之类的内容开头
  

亲爱的{用户的名字}   但我不知道如何获得将要收到该电子邮件的用户的名字。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

建议不要向所有用户发送电子邮件,因为收到电子邮件的人可以看到所有收件人,并且他们会收到您无法自定义的相同邮件以添加第一个名称用户。

您需要为每个用户创建单独的<AnchorPane fx:id="rootPane" prefHeight="408.0" prefWidth="330.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController"> <children> <ScrollPane fx:id="scrollPane" layoutX="28.0" layoutY="14.0" prefHeight="372.0" prefWidth="283.0"> <content> <VBox fx:id="vBox" prefWidth="281.0" /> </content> </ScrollPane> </children> </AnchorPane> 并将所有Mailable排队。分别向所有用户发送电子邮件是一项非常耗时的任务,工作人员需要在后台处理队列。

Mailable

现在您可以传递$users = User::all(); foreach ($users as $user) { Mail::to($user)->queue(new NotificationEmail($notification, $user)); } 实例,并且该视图上提供了该用户的名字:

$user