2013-08-29 206 views
0

在我的应用程序的管理面板中,我构建了一个简单的表单,用于发送简报。 只有两个字段:SUBJECT - BODY。Laravel 4:通过表格发送邮件

我想要的点击发送,邮件将被发送到通讯的所有订阅用户(现在也只是用户::第一个(),以测试它)

,但我得到这个错误:查看[邮件正文]未找到。

我想问:可以发送简单的邮件,只有文本,或者我必须发送一个视图作为邮件正文?

如果是有用的,这是我的梅勒类:

<?php namespace Mailers; 

class InvalidContactInfoException extends \Exception {} 

abstract class Mailer { 

public $to; 
public $email; 
public $subject; 
public $view; 
public $data; 
public $options; 


public function __construct($user) 
{ 
    if(!is_object($user)) 
    { 
     throw new InvalidContactInfoException('Please pass a valid user object'); 
    } 

      $this->data = $user->toArray(); 
    $this->to = $user->username; 
    $this->email = $user->email; 
} 

    public function deliver() 
{ 
      $self = $this; 
    return \Mail::send($this->body, $this->data, function($message) use($self) 
    { 
     $message->to($self->email, $self->to)->subject($self->subject); 
    }); 
} 

}

这是Usermailer类:

<?php namespace Mailers; 

class UserMailer extends Mailer { 

public function newsletter($subject, $body) 
{ 
    $this->subject = $subject; 
    $this->body = $body; 

    return $this; 

} 
} 

而且控制器方法:

public function sendNewsletter() 
{ 
    $input = Input::all(); 

    $rules = array('subject' => 'required', 'body' => 'required'); 

    $validation = Validator::make($input, $rules); 

    if($validation->passes()) 
    { 
     $subject = $input['subject']; 
     $body = $input ['body']; 

     $user = User::first(); 
     $mailer = new Mailers\UserMailer($user); 

     $mailer->newsletter($subject,$body)->deliver(); 

     return Redirect::back()->with('message','Congratulations, the newsletter has been sent succesfully'); 

    } 

    return Redirect::back()->withInput()->withErrors($validation)->with('message','There were validation errors'); 
} 

过程o f发送它的邮件工作正常...因为如果在身体例如我写'主'然后在我的电子邮件中,我收到一封电子邮件:作为主题插入的形式和身体主视图主题....

所以这个问题只是关于我想发送纯文本而不是视图的事实。

有人可以帮助我吗? 谢谢!

回答

0

林不知道,但也许你忘了把公共财产$身体在你的抽象梅勒类。