Php 如何解决从联系人表单发送电子邮件的错误

Php 如何解决从联系人表单发送电子邮件的错误,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正试图从我的联系方式发送邮件。但是我犯了一个错误 contact.blade.php是: <form method="post" action="{{ URL('send') }}"> {{csrf_field()}} <table align="center" width="400"> <tr> <td><strong>Full Name</strong></td> <

我正试图从我的联系方式发送邮件。但是我犯了一个错误

contact.blade.php是:

<form method="post" action="{{ URL('send') }}">
  {{csrf_field()}}
    <table align="center" width="400">
   <tr>
     <td><strong>Full Name</strong></td>
    <td><input type="text" name="name" required="required" /></td>
      </tr>
       <tr>
      <td><strong>Contact No.</strong></td>
     <td><input type="text" name="mobno" required="required" /></td>
      </tr>
      <tr>
       <td><strong>Email ID</strong></td>
        <td><input type="text" name="email" required="required" /></td>
        </tr>
      <tr>
        <td><strong>Message</strong></td>
        <td><textarea name="msg" cols="30" rows="3" required="required"></textarea></td>
      </tr>
        <tr>
           <td>&nbsp;</td>
           <td><input type="submit" name="submit" /></td>
         </tr>
       </table>
     </form>
Route::POST('send', 'ContactController@send');
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\officeholder;
use App\Mail\SendMail;
use Mail;

class ContactController extends Controller
{

public function send()
{
    Mail::send(new sendMail());
}
}
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Http\request;

class SendMail extends Mailable
{
use Queueable, SerializesModels;


public function __construct()
{
    //
}


public function build(Request $request)
{
    return $this->view('contact',['msg'=>$request->msg])->to('mymail@gmail.com');
}
}
ContactController.php是:

<form method="post" action="{{ URL('send') }}">
  {{csrf_field()}}
    <table align="center" width="400">
   <tr>
     <td><strong>Full Name</strong></td>
    <td><input type="text" name="name" required="required" /></td>
      </tr>
       <tr>
      <td><strong>Contact No.</strong></td>
     <td><input type="text" name="mobno" required="required" /></td>
      </tr>
      <tr>
       <td><strong>Email ID</strong></td>
        <td><input type="text" name="email" required="required" /></td>
        </tr>
      <tr>
        <td><strong>Message</strong></td>
        <td><textarea name="msg" cols="30" rows="3" required="required"></textarea></td>
      </tr>
        <tr>
           <td>&nbsp;</td>
           <td><input type="submit" name="submit" /></td>
         </tr>
       </table>
     </form>
Route::POST('send', 'ContactController@send');
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\officeholder;
use App\Mail\SendMail;
use Mail;

class ContactController extends Controller
{

public function send()
{
    Mail::send(new sendMail());
}
}
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Http\request;

class SendMail extends Mailable
{
use Queueable, SerializesModels;


public function __construct()
{
    //
}


public function build(Request $request)
{
    return $this->view('contact',['msg'=>$request->msg])->to('mymail@gmail.com');
}
}
更改您的代码:

Mail::send(new sendMail()); 

更新:

试试这个:

public function build(Request $request)
{
    return $this
             ->view('contact')
             ->with(['msg' => $request->msg])
             ->to('mymail@gmail.com');
}
您需要使用函数
with()
设置变量更改代码:

Mail::send(new sendMail()); 

更新:

试试这个:

public function build(Request $request)
{
    return $this
             ->view('contact')
             ->with(['msg' => $request->msg])
             ->to('mymail@gmail.com');
}
您需要使用函数
with()
设置变量,如下所示

<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use App\officeholder;
    use Mail;
    use App\Mail\SendMail;

    class ContactController extends Controller
    {

          public function send()
          {
              Mail::send(new SendMail());
          }
    }
像这样使用

<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use App\officeholder;
    use Mail;
    use App\Mail\SendMail;

    class ContactController extends Controller
    {

          public function send()
          {
              Mail::send(new SendMail());
          }
    }

@cloudsoft您是否收到
类“App\Http\Controllers\SendMail”未找到
,或任何其他错误?现在它已发送,但contact.blade.php的屏幕截图已发送到我的邮件。不是Form的价值,但这是下一个问题。请告诉我为什么会发生。这是什么意思-发送屏幕截图。它是代码,还是不带变量的视图?@cloudsoft是否收到
Class'App\Http\Controllers\SendMail'未找到
,或任何其他错误?现在它的发送,但contact.blade.php的屏幕截图已发送到我的邮件。不是Form的价值,但这是下一个问题。请告诉我为什么会发生。这是什么意思-发送屏幕截图。它是代码,还是没有变量的视图?谢谢你的回复。但是App\Mail\SendMail;他正在工作。但是发送contact.blade.php的截图感谢您的回复。但是App\Mail\SendMail;他正在工作。但是正在发送contact.blade.php的屏幕截图