首页 文章

Laravel 5.4 - 发送邮件

提问于
浏览
0

我在Laravel 5.4中有网站制作 . 我有联系表格,并尝试发送邮件,但发送邮件时,我收到了这些数据

Name: {{ $name }}

Email: {{ $email }}

Message: {{ $message1 }}

在laravel 5.1中,我获得了数据,但在Laravel 5.4中,我无法传递数据 .

我的web.php

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

我的控制器:

protected function postEmailContact() {

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

    ), function ($message) {

    $message->from('myMail@gmail.com', 'Contact');

    $message->to('yourMail@gmail.com')->subject('Contact');

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

和我的requestContact.blade.php

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

和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() !!}

任何的想法?如何传递数据?

2 回答

  • 1

    你应该试试这个:

    请更改 email 字段

    {!! 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('myMail@gmail.com', 'Contact');
    
        $message->to('yourMail@gmail.com')->subject('Contact');
    
    });
        return redirect('/');
    }
    

    希望这对你有用!!!

  • 1
    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
      MAIL_USERNAME=username@gmail.com
      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('username@gmail.com','To username');
                  $message->subject('test email yagnesh');
                  $message->from('username@gmail.com','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!!!
    

相关问题