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){

        // email

        $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">&times;</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

Popular posts from this blog

Sahari

Becoming like Iron Man, a fictional superhero from the Marvel Universe

Laptop