Sending mail using Laravel 4.2 and Mailgun

286 Views Asked by At

i'm little bit new to this.

I had read the documentation of Laravel 4 and some of the Mailgun, I had tested some mail and worked but just in route like this:

Route::get('send_test_email', function(){
    Mail::send('emails.registro', array('key' => 'value'), function($message)
    {
        $message->subject('Bienvenido a la gran experiencia');
        $message->from(env('CONTACT_MAIL'), env('CONTACT_NAME'));
        $message->to('[email protected]');
    });
});

I went to myapp/send_test_email in the browser and get an email.

But now I want to send an email at registration, I created the route:

Route::get('mail', ['uses' => 'MailController@send', 'as' => 'send']);

The controller:

<?php

class MailController extends \BaseController {

    public function index()
    {
        return View::make('signup');
    }

    public function send() {

        Mail::send('emails.registro', $data, function($message) use
           {

           $message->subject('Bienvenido a la gran experiencia');

           
           $message->from(env('CONTACT_MAIL'), env('CONTACT_NAME'));

           
           $message->to($user->email, $user->firstname);

           });
    }

And added a form to the signup form like this:

    {{ Form::open(['route' => 'send', 'method' => 'get']) }}

    <div class="form-group">
        {{ Form::label('username', 'Usuario', ['class' => 'sr-only']) }}
        {{ Form::text('username', null, ['placeholder' => 'Usuario', 'required', 'minlength' => 6, 'class' => 'form-control', ]) }}
        @foreach($errors->get('username', '<span class=error>:message</span>') as $message)
            {{$message}}
        @endforeach
    </div>
    <div class="form-group">
        {{ Form::label('password', 'Contrase&ntilde;a', ['class' => 'sr-only']) }}
        {{ Form::password('password', ['placeholder' => 'Contrase&ntilde;a', 'required', 'minlength' => 8, 'class' => 'form-control']) }}
        @foreach($errors->get('password', '<span class=error>:message</span>') as $message)
            {{$message}}
        @endforeach
    </div>
    <div class="form-group">
        {{ Form::label('password_confirm', 'Confirmar Contrase&ntilde;a', ['class' => 'sr-only']) }}
        {{ Form::password('password_confirmation', ['placeholder' => 'Confirmar Contrase&ntilde;a', 'required', 'minlength' => 8, 'class' => 'form-control']) }}
        @foreach($errors->get('password_confirmation', '<span class=error>:message</span>') as $message)
            {{$message}}
        @endforeach
    </div>
    <div class="form-group">
        {{ Form::label('email', 'Email', ['class' => 'sr-only']) }}
        {{ Form::email('email', null, ['placeholder' => 'Email', 'required', 'class' => 'form-control']) }}
        @foreach($errors->get('email', '<span  class=error>:message</span>') as $message)
            {{$message}}
        @endforeach
    </div>
    <div class="form-group">
        {{ Form::label('firstname', 'Nombres', ['class' => 'sr-only']) }}
        {{ Form::text('firstname', null, ['placeholder' => 'Nombres', 'required', 'class' => 'form-control']) }}
    </div>
    <div class="form-group">
        {{ Form::label('lastname', 'Apellidos', ['class' => 'sr-only']) }}
        {{ Form::text('lastname', null, ['placeholder' => 'Apellidos', 'required', 'class' => 'form-control']) }}
    </div>

    <div class="form-group">
        {{ Form::submit('Registrar', ['class' => 'btn btn-lg btn-block btn-kinbu'])}}
    </div>
    {{ Form::close() }}

And I got a Parse error: syntax error, unexpected 'Mail' (T_STRING) in the controller, why?

1

There are 1 best solutions below

0
On

Here I have errors:

    public function send() {

    Mail::send('emails.registro', $data, function($message) use
       {

       $message->subject('Bienvenido a la gran experiencia');


       $message->from(env('CONTACT_MAIL'), env('CONTACT_NAME'));


       $message->to($user->email, $user->firstname);

       });
}

I'm using the $user var, but I'm not passing it with the closure "user" so I have to do:

    public function send() {

    Mail::send('emails.registro', array('key' => 'value'), function($message) use ($user)
       {

       $message->subject('Bienvenido a la gran experiencia');


       $message->from(env('CONTACT_MAIL'), env('CONTACT_NAME'));


       $message->to($user->email, $user->firstname);

       });
}