I am trying to send mail from my contact form. But I am getting error.
contact.blade.php is:
<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> </td>
<td><input type="submit" name="submit" /></td>
</tr>
</table>
</form>
web.php is:
Route::POST('send', 'ContactController@send');
ContactController.php is:
<?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());
}
}
**I have created SendMail.php using
php artisan make:mail SendMail
by my cmd and then App\Mail\SendMail.php is created.**
SendMail.php is:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Httpequest;
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');
}
}
But screenshot of my contact.blade.php is sending to my mail, not the value of form and it also not redirect on contact page.
Pass the data in the contructor
class ContactController extends Controller
{
public function send()
{
Mail::send(new SendMail(request()));
redirect()->to('url');
}
}
And in your Mail
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Httpequest;
class SendMail extends Mailable
{
use Queueable, SerializesModels;
private $request;
public function __construct( Request $request )
{
$this->request = $request;
}
public function build()
{
return $this->view('contact',['msg'=>$this->request->msg])->to('mymail@gmail.com');
}
}
Hope this helps