如何在电子邮件模板中定义电子邮件主题

时间:2016-05-03 11:16:44

标签: php laravel laravel-5 laravel-5.2

我有这样的电子邮件刀片:

rd /s /q "%%~#"

在emails.layouts.general

<?php
$title = 'title';
$text   = 'text';
?>

@include('emails.layouts.general')

我发送电子邮件,如:

<h1>{{$title}}</h1>
<p>{{$text}}</p>

有没有人知道如何在刀片中定义主题:

$subject = 'some subject'

\Illuminate\Support\Facades\Mail::send($template, [],
    function ($m) {
    $m->to('test@test.com', 'test test')->subject($subject);
});

并在发送电子邮件时设置此主题?

编辑:

我需要这样的东西: 在电子邮件刀片中设置电子邮件主题:

<?php
$subject = 'subject';
$title   = 'title';
$text    = 'text';
?>

或在控制器中:

<?php
$title   = 'title';
$text    = 'text';
$subject = 'subject';
Mail::setEmailSubjectForNextEmail($subject);
?>

@include('emails.layouts.general

我想在刀片模板中设置主题变量,而不是在控制器中,因为我有超过50封电子邮件,我希望前面的开发人员只使用刀片模板而不是控制器来工作(编辑)。

2 个答案:

答案 0 :(得分:0)

尝试使用:

@php 
$message->setSubject('New subject');
@endphp

答案 1 :(得分:-1)

您需要将$subject传递回回调并传递到模板中。 subject方法设置邮件主题行,但不将其传递到电子邮件模板

$subject = 'Your Subject';

Mail::send($template, ['subject'=>$subject,'other_thing'=>'what you like'], //this will pass it into the blade template
   function ($m) use($subject){ //you need to pass into the use clause to make the variable available in the scope of the callback
      $m->to('test@test.com', 'test test')->subject($subject); 
   }
);

您不需要为模板顶部的变量赋值,只要您将它们放入第二个参数的数组中就可以使用它们。

刀片模板:

<div>{{$subject}}</div> <!-- "Your Subject" -->
<span>{{$other_thing}}</span><!-- "what you like" -->