PHP Laravel 发送电子邮件

标签 php laravel email

我是 php 和 Laravel 的新手,我正在尝试发送电子邮件,但我的邮件 Blade 模板有一些问题。

在我的 Controller 中,我收到了来 self 的表单的请求,并将我的信息存储在这样的数组中......

$data = array(
    'name' => $request->name,
    'mail'=> $request->mail,
    'message'=> $request->message,
    'category'=> $request->category,
    'company'=>$request->company
);

如果我对变量 $data 执行 print_r,它会打印类似这样的内容

Array ( [name] => Boby [mail] => boby@hotmail.com [message] => call me back [category] => 2 [company] => Test )

然后我使用这部分代码发送我的电子邮件

Mail::send('mail', $data, function($message) use ($fromEmail, $fromName)
{   
    $message->from($fromEmail, $fromName);
    $message->to('myemail@gmail.com', 'myname')->subject('subject');
 );

但是当它到达 Blade View 时,我收到了这个错误...

    ErrorException (E_ERROR)
Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) (View: /home/dave/NetBeansProjects/InspectionBelaire/resources/views/mail.blade.php)

这是我的完整帖子和 Blade View

邮件 Controller .php

<?php

namespace App\Http\Controllers;

use Illuminate\Routing\Controller as BaseController;
use Illuminate\Http\Request;
use Mail;

class MailController extends BaseController
{
    public function send(Request $request) {
            $fromEmail = $request->mail;
            $fromName = $request->name;

            $data = array(
                'name' => $request->name,
                'mail'=> $request->mail,
                'message'=> $request->message,
                'category'=> $request->category,
                'company'=>$request->company
            );


            Mail::send('mail', $data, function($message) use ($fromEmail, $fromName)
            {   
                $message->from($fromEmail, $fromName);
                $message->to('otid91@gmail.com', 'dotis')->subject('Nouvelle soumission en ligne');
            });
        }
}

邮件.blade.php

<html>
<head>
    <meta charset="utf-8">
</head>
<body>

<div>
  {{name}}
  {{mail}}
  {{message}}
  {{category}}
  {{company}}
</div>

</body>
</html>

最佳答案

Laravel 使用 Blade 模板引擎,{{ }} 之间的任何代码基本上都按如下方式运行:

<?php

echo [whatever you entered];

?>

所以在你的情况下,你需要做的就是修改你的 Blade View :

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>

        <div>
          {{ $name }}
          {{ $mail }}
          {{ $message }}
          {{$category }}
          {{ $company }}
        </div>

    </body>
</html>

关于PHP Laravel 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535931/

相关文章:

php - 使用 PHP 和 MySQL DB 构建可跟踪链接

javascript - 即使浏览器窗口关闭后仍继续使用 setTimeout 执行 AJAX

php - 社交登录实现的数据库结构?

php - 使用php使用glob和数组将文件夹中的xml文件上传到Mysql

php artisan 相当于生产

php - 查询 Laravel 5.1 中的语法错误访问冲突

php - 覆盖默认的 FOSUserBundle 表单 : InvalidArgumentException

php - 使用 Codeception 运行现有的 Laravel 5.1 PHPUnit 测试

html - HTML 电子邮件中的文本装饰(非链接)

email - 收件箱管理(在Outlook中)