MAIL SEND USING CONTROLLER MAIL FUNCTION, FETCH FROM DB AND THEN MAIL [[ LARAVEL DIRECT MAIL, DB FETCH MAIL ]]
Mail Sending MAIL SEND USING CONTROLLER MAIL FUNCTION, FETCH FROM DB AND THEN MAIL [[ LARAVEL DIRECT MAIL, DB FETCH MAIL ]]
// ------------------------------------
CarController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\enquiry;
use App\Mail\clMail;
use Illuminate\Support\Facades\Mail;
class CarController extends Controller
{
public function index(){
return view('index');
}
public function about(){
return view('about');
}
public function booking(){
return view('booking');
}
public function contact(){
return view('contact');
}
public function detail(){
return view('detail');
}
public function service(){
return view('service');
}
public function team(){
return view('team');
}
public function car(){
return view('car');
}
public function testimonial(){
return view('testimonial');
}
public function confmac(Request $req){
$enrr = new enquiry;
$enrr->name = $req->enname;
$enrr->email = $req->enemail;
$enrr->subject = $req->ensubject;
$enrr->message = $req->enmsgbdy;
$enrr->save();
return redirect('contact')->with('success','Mail sent successfully.');
}
public function clcontact(Request $r)
{
$data = [
'name' => $r->enname,
'email' => $r->enemail,
'subject' => $r->ensubject,
'message'=> $r->enmsgbdy
];
Mail::to($r->enemail)->send(new clMail($data));
return view('mailsend',['data'=>$data]);
}
}
// ------------------------------------
App\Mail\clMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class clMail extends Mailable
{
use Queueable, SerializesModels;
public function __construct($data)
{
//
$this->data = $data;
}
public function build()
{
return $this->view('mailsend')->with('data', $this->data);
}
}
// ------------------------------------
views\mailsend.php ::
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h3> {{ $data['name'] }} </h3>
Thank u
we got the mail
</body>
</html>
// ------------------------------------
Route\Web.php ::
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CarController;
use App\Http\Controllers\AdminController;
Route::get('/',[CarController::class,'index']);
Route::get('/about',[CarController::class,'about']);
Route::get('/booking',[CarController::class,'booking']);
Route::get('/contact',[CarController::class,'contact']);
Route::get('/detail',[CarController::class,'detail']);
Route::get('/service',[CarController::class,'service']);
Route::get('/team',[CarController::class,'team']);
Route::get('/car',[CarController::class,'car']);
Route::get('/testimonial',[CarController::class,'testimonial']);
Route::post('/confmac',[CarController::class, 'confmac']);
Route::post('/clcontact',[CarController::class,'clcontact']);
// ------------------------------------------------------------------------------
// Admin routes // Admin routes // Admin routes // Admin routes // Admin routes
Route::get('/adregister',[AdminController::class,'register']);
Route::get('/adforget_pass',[AdminController::class,'forget_pass']);
Route::get('/adlogin',[AdminController::class,'login']);
// adfrinac
Route::post('/adfrinac',[AdminController::class,'adfrinac']);
Route::post('/adlgac',[AdminController::class,'adlgac']);
Route::group(['middleware'=>['adlgchk']], function(){
Route::get('/adindex',[AdminController::class,'index']);
Route::get('/adlogout', function () {
if(session()->has('adeu')){
session()->forget('adeu');
}
return redirect('adlogin');
});
Route::get('/admail',[AdminController::class,'mailbox']);
Route::get('/admailsend/{id}',[AdminController::class,'admailsend']);
} );
//grp end
// ------------
Make mail file ::
php artisan make:mail adminMail
// ------------------------------------
AdminController ::
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\admin;
use App\Models\enquiry;
use Hash;
use Session;
use App\Mail\adminMail;
use Illuminate\Support\Facades\Mail;
class AdminController extends Controller
{
function register() {
return view('admin.register');
}
function forget_pass() {
return view('admin.forget_pass');
}
function login() {
return view('admin.login');
}
function index() {
return view('admin.index');
}
function adfrinac(Request $r){
$r->validate([
'name' => 'required',
'email' => 'required |unique:admins',
'password' => 'required'
]);
$nwad = new admin;
$nwad->name = $r->name;
$nwad->email = $r->email;
$nwad->password = Hash::make($r->password);
$nwad->save();
// Session::flash('message', "Records are Added Successfully");
return redirect('adlogin');
}
function adlgac(Request $r){
$adfn = admin::where('email',$r->email)->first();
$adcnt = admin::where('email',$r->email)->count();
if($adcnt > 0){
if(Hash::check($r->password, $adfn->password )){
$r->session()->put('adeu',$adfn);
// echo "\nlogin";
// echo Session::get('adeu');
return redirect('adindex')->with('message',' Login Successfully. ');
}else{
return redirect()->back()->with('wrlgcr','** Username or Password does not match');
}
}else{
return redirect()->back()->with('wrlgcr','** Username or Password does not match');
}
}
function mailbox(){
$data = enquiry::all();
return view('admin.mailbox',['data'=>$data]);
}
function admailsend($id){
$enrr = enquiry::find($id);
$adminmail=[
'name'=> $enrr->name,
'email'=> $enrr->email,
'subject'=> 'Subject Reply: Yes it is approved. ',
'message'=> 'Yes this is full lorem nothing else. please send app msg'
];
Mail::to($enrr->email)->send(new adminMail($adminmail));
return view('admin.mail',['adminMail'=>$adminmail]);
}
}
/* -----------------------------
Mail\adminMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class adminMail extends Mailable
{
use Queueable, SerializesModels;
public function __construct($adminMail)
{
//
$this->adminMail = $adminMail;
}
public function build()
{
// return $this->view('view.name');
return $this->view('admin.mail')->with('adminMail',$this->adminMail);
}
}
/*------------------------------
database\migration\enquires table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('enquiries', function (Blueprint $table) {
$table->id();
$table->string('name')->nullable();
$table->string('email')->nullable();
$table->string('subject')->nullable();
$table->longText('message')->nullable();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('enquiries');
}
};
/* ----------------------------
Database\migrations\admins
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('admins');
}
};
/* ----------------------------
View\Admin\MailBOx
@include('admin.adcommon.header')
<head>
<!-- D Page-->
<title>Dashboard</title>
</head>
@include('admin.adcommon.sidemenu')
<!-- MAIN CONTENT-->
<div class="main-content">
<div class="section__content section__content--p30">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
@if(session()->has('message'))
<div class="alert alert-success text-center alert-dismissible fade show" role="alert">
<strong>{{session()->get('message')}}</strong>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
<div class="overview-wrap">
<h2 class="title-1">Mail Box </h2>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="copyright">
<div class="mb-2 table-responsive">
<table class="table align-middle table-hover table-sm" id="table_id">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Subject</th>
<th scope="col">Message</th>
<th scope="col">Action</th>
<?php $c=1; ?>
</tr>
</thead>
<tbody>
@foreach($data as $seu)
<tr>
<th scope="row"><?php echo $c++; ?></th>
<td scope="col"> {{ $seu['name'] }} </td>
<td scope="col"> {{ $seu['email'] }} </td>
<td scope="col"> {{ $seu['subject'] }}</td>
<td scope="col"> {{ $seu['message'] }} </td>
<td>
<a href="{{url('admailsend',$seu['id'])}}" class='text-info p-2'> <i class="fa fa-paper-plane" aria-hidden="true"></i></a>
<a href="" class='text-danger p-2'><i class="fa fa-trash" aria-hidden="true"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
<script>
$(document).ready( function () {
$('#table_id').DataTable();
} );
</script>
<!-- display ends -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- END MAIN CONTENT-->
<!-- END PAGE CONTAINER-->
</div>
</div>
<!-- Jquery JS-->
@include('admin.adcommon.ftrjq')
/*-------------------------
views\admin\mail
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous">
</script>
</head>
<body class="mt-5">
<div class="text-center mb-3">
<h1>Hello {{ $adminMail['name'] }}</h1>
</div>
<div class="text-center">
<h1>{{ $adminMail['subject'] }}</h1>
</div>
<div class="text-center">
<h1>{{ $adminMail['message'] }}</h1>
</div>
<div class="container text-dark ">
<a href="/admail"> Back </a>
</div>
</body>
</html>
/*-------------------------------
.env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=0da7f8db48bed7
MAIL_PASSWORD=565e73c4480d5a
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=sk.saifuddin@brainiuminfotech.com
MAIL_FROM_NAME="Sk SAIF"
Comments
Post a Comment