在Laravel 5.1中,您可以使用邮件消息类(Mailable)来传递HTML正文和文本正文,而无需使用视图。以下是一个示例:
首先,您需要创建一个Mailable类,例如MyEmail
,可以使用以下命令生成:
php artisan make:mail MyEmail
然后,打开生成的MyEmail
类文件,您可以在build
方法中设置HTML正文和文本正文:
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class MyEmail extends Mailable
{
use Queueable, SerializesModels;
public $htmlContent;
public $textContent;
public function __construct($htmlContent, $textContent)
{
$this->htmlContent = $htmlContent;
$this->textContent = $textContent;
}
public function build()
{
return $this->view('emails.blank')
->with([
'htmlContent' => $this->htmlContent,
'textContent' => $this->textContent
])
->text('emails.blank_text');
}
}
在上面的例子中,build
方法使用view
方法来设置HTML正文,并传递htmlContent
变量,使用text
方法设置文本正文,并传递textContent
变量。这里使用了一个名为blank
的视图作为模板,您可以根据需要更改。
接下来,您可以在您的控制器或其他逻辑中使用MyEmail
类来发送邮件,例如:
use App\Mail\MyEmail;
use Illuminate\Support\Facades\Mail;
public function sendEmail()
{
$htmlContent = '<h1>Hello</h1><p>This is the HTML content of the email.</p>';
$textContent = 'Hello, This is the text content of the email.';
Mail::to('example@example.com')->send(new MyEmail($htmlContent, $textContent));
}
在上面的例子中,sendEmail
方法使用MyEmail
类的实例,并传递HTML正文和文本正文。然后,使用Mail
门面的to
方法指定收件人,并使用send
方法发送邮件。
这样,您就可以在不使用视图的情况下传递HTML正文和文本正文来发送电子邮件。在这个例子中,我们仅演示了如何传递HTML正文和文本正文,您可以根据自己的需求进行进一步的定制化。
领取专属 10元无门槛券
手把手带您无忧上云