使用markdown电子邮件联系表格

时间:2017-03-27 14:12:02

标签: php laravel email laravel-5.4

我们是否可以使用降价功能为联系表单设置电子邮件模板的样式?我正在使用此方法从联系表单发送消息:

发送电子邮件的方法:

        Mail::send('emails.contact', $data, function($message) use ($data){
        $message->from($data['email']);
        $message->to('example@domain.com');
        $message->subject($data['subject']);
    });

contact.blade.php

    <h3>You have a new email via contact form</h3>
<div>
{{ $bodyMessage }}
</div>
<p>Sent by: {{ $email }}</p>

2 个答案:

答案 0 :(得分:0)

由于您似乎没有对您的代码有任何问题,我只是将您指向文档,如果我有错误的印象并且存在问题,请随时发表评论并且我&# 39; ll update。

从5.4开始,是的。您最好在Laravel上查阅文档,它提供有关可邮寄和一般邮件的深入说明。

答案 1 :(得分:0)

您必须使用mailable课程才能在电子邮件中使用markdown。

运行命令php artisan make:mail ContactForm以创建mailable类。

ContactForm课程中,您的build方法应该是这样的:

public function build()
{
    return $this->from('example@example.com')
        ->markdown('emails.contact');
}

您还可以在生成mailable类时自动关联降价视图,方法是将markdown标记传递给视图名称:

php artisan make:mail --markdown=view.name

要发送邮件,您可以这样称呼:

Mail::to($email)->send(new ContactForm($data));

要访问$data中的mailable变量,您必须将其声明为公共变量。您mailable课程中定义的任何公共属性都将自动提供给视图。例如:

class ContactForm extends Mailable
{
    use Queueable, SerializesModels;

    public $data;

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

在视图文件中,您可以正常访问该变量,就像您在其他刀片模板中一样。示例:

Sender email: {{ $data['email'] }}

如果您想从刀片视图构建而不是降价,请使用markdown类中的视图替换ContactForm

您可以在官方文档中查看更多信息。

https://laravel.com/docs/master/mail#writing-mailables