dev
dev

Reputation: 65

Laravel 5.4 - send mail

i have web site make in Laravel 5.4. I have contact form and try to send mail but when send i got in mail this data

Name: {{ $name }}

Email: {{ $email }}

Message: {{ $message1 }}

In laravel 5.1 I got the data but in Laravel 5.4 I can not pass data.

My web.php

Route::post('mailContact', 'SiteController@postEmailContact');

My contorller:

  protected function postEmailContact() {

   Mail::send('requestContact', array(
        'name' =>Input::get("name"),
         'email' =>Input::get("email"),
          'message1' =>Input::get("message1")

    ), function ($message) {

    $message->from('[email protected]', 'Contact');

    $message->to('[email protected]')->subject('Contact');

});
    return redirect('/');
}

and my requestContact.blade.php

 Name: {{ $name }}
 Email: {{ $email }}
 Message: {{ $message1 }}

and contact.blade.php

 {!! Form::open(array('url' => 'mailContact','class'=>'form-group')) !!}
                    <div id="content-page" class="content group">
                        <div class="hentry group">
                             <div class="usermessagea"></div>
                                            <label for="name-contact-us">
                                           Name
                                            </label>
                                            <div class="input-prepend"> {!! Form::text('name', null, array('class' => 'form-control','placeholder' => 'ime')) !!}</div>
                                            <div class="msg-error"></div>

                                            <label for="email-contact-us">
                                           Email
                                            </label>
                                           <div class="input-prepend">   {!! Form::text('name', null, array('class' => 'form-control','placeholder' => 'email')) !!}</div>
                                            <div class="msg-error"></div>

                                            <label for="message-contact-us">
                                           Message
                                            </label>
                                        <div class="input-prepend">     {!! Form::textarea('message1', null, 
                    array( 'placeholder'=>'message',
                    'class'=>'form-control'
                   )) !!}</div>

                                  </br>
                                         {!! Form::submit('send' , array('class' => 'btn btn-primary')) !!}                 

                    </div>
                    {!! Form::close() !!}

Any idea? How to pass data?

Upvotes: 1

Views: 3191

Answers (2)

AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Reputation: 21681

You should try this:

Please change email field

{!! Form::text('name', null, array('class' => 'form-control','placeholder' => 'email')) !!}

to:

{!! Form::text('email', null, array('class' => 'form-control','placeholder' => 'email')) !!}

Updated answer

protected function postEmailContact() {

$data =  array(
        'name' =>Input::get("name"),
         'email' =>Input::get("email"),
          'message1' =>Input::get("message1")

    );

   Mail::send('requestContact',$data, function ($message) {

    $message->from('[email protected]', 'Contact');

    $message->to('[email protected]')->subject('Contact');

});
    return redirect('/');
}

Upvotes: 2

Yagnesh bhalala
Yagnesh bhalala

Reputation: 1315

 Follow 3 step only
 1] configure in .evn file at root dir. as above
  MAIL_DRIVER=smtp
  MAIL_HOST=smtp.gmail.com
  MAIL_PORT=587
  [email protected]
  MAIL_PASSWORD=******
  MAIL_ENCRYPTION=tls


2]create controller
  use Mail;
  class mailController extends Controller
  {
    public function send(){
       Mail::send(
          ['text' => 'post.mail'], //e.g post/mail.blade.php <view file mentioned here>
          ['name' => 'Name'],
          function($message){
              $message->to('[email protected]','To username');
              $message->subject('test email yagnesh');
              $message->from('[email protected]','from username');
          }
       );
    }
 } 

AND create view file <post/mail.blade.php> set this name

3] run command at root dir. to Restart server <php artisan serve>   
   And
   U can allow google less security at [https://www.google.com/settings/security/lesssecureapps][1]
   Just enabled 

4] create Route
  //for send mail

       Route::get('/send','mailController@send');  
  and run 'send' keyword in your url.

For more visit <https://www.youtube.com/watch?v=a08ouL3wjjQ&list=PLe30vg_FG4OQz1yZq0z19ZuWD_C3MZbA4&index=26> 
Good luck!!!

Upvotes: 1

Related Questions