首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 4电子邮件:我无法收到电子邮件

Laravel 4电子邮件:我无法收到电子邮件
EN

Stack Overflow用户
提问于 2014-06-01 17:55:16
回答 3查看 273关注 0票数 0

我写了这个用来发送电子邮件的代码

代码语言:javascript
运行
复制
Route::post('contact', function(){

$inputs = Input::all();


$rules = array(
   'email' => 'required|email',
   'name' => 'required|min:2',
   'message' => 'required',
   'recaptcha_response_field' => 'required|recaptcha',

  );

$validator = Validator::make($inputs, $rules);

如果($验证器->passes()){

代码语言:javascript
运行
复制
$fromEmail = Input::get('email');
$fromName = Input::get('name');
$subject = Input::get('subject');
$data = array('message' => Input::get('message'));

$toEmail = 'info@danielchikaka.com';
$toName = 'Daniel Chikaka';

Mail::send('emails.contact', $data, function($message) use ($toEmail, $toName, $fromEmail, $fromName, $subject){
    $message->to($toEmail, $toName)->from($fromEmail, $fromName)->subject($subject);
});

return Redirect::to('/');

}

代码语言:javascript
运行
复制
return Redirect::to('/#contact')->withInput()->withErrors($validator);

});

我认为emails.contact是

代码语言:javascript
运行
复制
<html>
<body>
    <p><b>Email From:</b> {{$fromName}} of {{$fromEmail}}</p>
    <p><b>Subject:</b> {{$subject}}</p>
    <b> Message:</b> <br>
</html>        {{$data}}
</body>

但每当我发电子邮件时,我得到的只有:

代码语言:javascript
运行
复制
Email From:{{$fromName}} of {{$fromEmail}}
        Subject: {{$subject}}
         Message:
        {{$data}

为什么我的视图不从邮件类中获取数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-01 17:57:47

确保视图具有blade扩展:

代码语言:javascript
运行
复制
views/emails/contact.blade.php
票数 0
EN

Stack Overflow用户

发布于 2014-06-01 18:10:41

您的$data数组只包含变量消息。因此,在您的刀片模板中,只有{$message}才能工作。确保将视图中所需的所有变量传递到$data数组中。

代码语言:javascript
运行
复制
$data = array(
  'message' => Input::get('message'),
  'fromName' => Input::get('name'),
  'fromEmail'=> Input::get('email')
);

现在,在您的contact.blade.php中,您可以使用它们作为普通变量{$formName}、{$fromEmail}}等;

此外,由于您使用的是刀片模板,请确保视图文件具有正确的扩展名,即contact.blade.php

票数 0
EN

Stack Overflow用户

发布于 2014-06-02 03:48:15

我找到了解决我的问题的办法:

代码语言:javascript
运行
复制
$fromEmail = Input::get('email');
$fromName = Input::get('name');
$subject = Input::get('subject');
$data = array('content' => Input::get('message'));

$toEmail = 'info@danielchikaka.com';
$toName = 'Daniel Chikaka';

Mail::send('emails.contact', $data, function($message) use ($toEmail, $toName, $fromEmail, $fromName, $subject){
    $message->to($toEmail, $toName)->from($fromEmail, $fromName)->subject($subject);
});

在这种情况下,必须是:

代码语言:javascript
运行
复制
<html>
<body>
   {{$content}}
</html>       
</body>

重要信息:从不在联系人视图文件中使用{{$message},根据Taylor Otwell的说法,该文件是在电子邮件视图文件中保留的。

希望有一天这会对某人有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23982747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档