laravel发送邮件怎么自定义邮件标题?

cherrylee
  • 1.2k

按照文档来写的发送邮件:https://d.laravel-china.org/d...

首先,生成一个mailable:

    php artisan make:mail UserRegistered

然后在app/Mail有了一个UserRegistered.php 文件,里面的build()方法是这样写的:

    public function build()
    {
        return $this->view('emails.activate-user')
                    ->with([
                        'name' => $this->user->name,
                        'url' => route('activateUser',['token'=>$this->user->confirmation_token])
                    ]);
    }

使用的时候这样调用:

 Mail::to($user)->send(new UserRegistered($user));

邮件可以发送成功,可是邮件标题总是User Registered,可以自定义吗?

回复
阅读 7.5k
4 个回答
雪风
  • 60

最简单的方法,在你的UserRegistered这个类中定义一个subject变量:

public $subject = '在这里定义邮件标题啦^_^';

或者在你的view后跟一个subject方法:

view('emails.activate-user')->subject('这里定义邮件标题')

有多个地方可以设标题,

  1. 你创建的这类有个有个subject函数, 调用即可. (推荐, 因为简单)
  2. 在此类的withSwiftMessage(), 设个回调函数, 设置subject
  3. 在Mailer::send()的回调函数中设置

我用的邮件服务不是laravel自带的,是二次开发的。
github:SendCloud

宣传栏