Passing data to queued Mail object in Laravel 4, using Iron.io

684 views Asked by At

I am trying to set up a queued email in Laravel 4 using the Iron.io driver. I would like to pass some details to the email's Subject and From attributes but they seem to not be making it into the queue request and their presence causes the email to not be sent (not sure where to look for a log with errors). However, simply using Mail::Send() works fine.

Here is the code in question:

public function handleFeedbackForm() 
{
    $data = array(
        'name_f' => Input::get('name_f'),
        'name_l' => Input::get('name_l'),
        'email' => Input::get('email'),
        'commentType' => Input::get('commentType'),
        'testimonialPublish_answer' => Input::get('testimonialPublish_answer'),
        'comment' => Input::get('message')
    );
    $rules = array(
        'name_f' => 'required',
        'name_l' => 'required',
        'email' => 'required|email',
        'message' => 'required'
    );

    $v = Validator::make(Input::all(), $rules);
    if ($v->passes()) 
    {
        $emailInfo = array('name_f' => Input::get('name_f'), 
                           'name_l' => Input::get('name_l'), 
                            'email' => Input::get('email'));

        Mail::queue('emails.feedback', $data, function($message) use($emailInfo) 
        {
            $recipients = array();
            $form = MailType::find(1);

            foreach ($form->users as $user) 
            {
                $recipients[] = $user->email;
            }

            if (count($recipients) == 0) 
            {
                // Nobody for this field, send to webmaster
                $recipients[] = '[email protected]';
            }

            $message->to($recipients)
                ->from($emailInfo['email'])
                ->subject('Foobar Feedback Form Message - ' . $emailInfo['name_f'] . ' ' . $emailInfo['name_l']);
        });

        return Redirect::to('contact')->with('feedbackSuccess', true);
    } 
    else 
    {
        return Redirect::to('contact')->with('feedbackError', true);
    }
}

Any ideas? Thanks!

0

There are 0 answers