Wednesday, August 17, 2022

Membuat Email dengan Laravel

 


Berikut adalah cara membuat pengiriman email dengan Laravel :

1. Buat project dengan nama : laravel-mail

composer create-project --prefer-dist laravel/laravel:^9.1 laravel-mail

lalu masuk ke folder tersebut dengan perintah pada commandpromt ( CMD ) / terminal 

cd laravel-mail

Setelah jalankan perintah dibawah pada terminal . CMD :

php artisan serve

Untuk melihat hasil , buka browser lalu ketik http://localhost:8000


2.  Konfigurasi .env

2.1.  Jika menggunakan SMTP Gmail : Modif file .env menjadi seperti dibawah ini 

MAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=587

MAIL_USERNAME=namaemail@gmail.com

MAIL_PASSWORD=passwordemail

MAIL_ENCRYPTION=tls

MAIL_FROM_ADDRESS=namaemail@gmail.com

MAIL_FROM_NAME=”${APP_NAME}”

Setelah itu masuk ke pengaturan Google Security pada akun Gmail yang digunakan. Masuk halaman Google Account, lalu klik Security. Scroll ke bawah sampai menemukan bagian Less secure app access, set , kemudian On kan 


kalau menggunakan bahasa indonesia pada gmail :

Masuk pengaturan Google Keamanan pada akun Gmail yang digunakan. Mmasuk halaman Kelola Akun Google Anda, lalu klik Keamanan. Scroll ke bawah sampai menemukan bagian Akses aplikasi yang kurang aman, set menjadi Nonaktif


2.2. Jika menggunakan SMTP hosting, modif file .env menjadi seperti dibawah :

MAIL_DRIVER=smtp

MAIL_HOST=mail.ptxyz.com

MAIL_PORT=465

MAIL_USERNAME=namaemail@ptxyz.com

MAIL_PASSWORD=passwordemail

MAIL_ENCRYPTION=tls

MAIL_FROM_ADDRESS=namaemail@ptxyz.com

MAIL_FROM_NAME=”${APP_NAME}”


3. Buat Class Mail : nama kelas adalah SendEmail

Jalankan perintah dibawah ini pada terminal / cmd

hp artisan make:mail SendEmail

maka akan tercipta class SendEmail.php pada folder email


Kemudian pilih SendEmail.php, lalu modif menjadi :

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Mail\Mailable;

use Illuminate\Queue\SerializesModels;

class SendEmail extends Mailable

{

    use Queueable, SerializesModels;

    public $data;

    /**

     * Create a new message instance.

     *

     * @return void

     */

    public function __construct($data)

    {

        $this->data = $data;

    }


    /**

     * Build the message.

     *

     * @return $this

     */

    public function build()

    {

        return $this->subject('Testing Kirim Email')

                    ->view('emails.sendemail');

    }

}


4. Membuat Blade View

Kemudian ke folder resources/views, lalu buatlah folder dengan nama emails. dan buatlah file dengan nama sendemail.blade.php di dalam folder tersebut, lalu isikan sintak dibawah :

<!DOCTYPE html>

<html>

<head>

    <title>ptxzy.com</title>

</head>

<body>

    <h3>{{ $data['name'] }}</h3>

    <h4>{{ $data['body'] }}</h4>

   

    <p> Terima kasih </p>

</body>

</html>


5.  Membuat Mail Controller

Jalankan perintah dibawah ini pada terminal / cmd 

php artisan make:controller MailController

atau dibuat secara manual dengan cara masuk ke app/Http/Controllers lalu buat file baru dalam folder controllers.  

Setelah itu, modif isi Mail Controller tersebut :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Mail\SendEmail;

use Illuminate\Support\Facades\Mail;

class MailController extends Controller

{

    public function index(){

$details = [

    'title' => 'Mail from ptxyz.com',

    'body' => 'Email menggunakan smtp'

    ];

    \Mail::to('emailpenerima@gmail.com')->send(new \App\Mail\SendEmail($details));

    dd("Email berhasil dikirim.");

}

}


6.  Menambahkan Route

Masuk ke folder routes, lalu edit file web.php, tambahkan route di bawah ini.

Route::get('send-email','App\Http\Controllers\MailController@index');


pada  tahap no 5 dan 6 digabungkan dalam menambahkan router :

<?php

use Illuminate\Support\Facades\Mail;

use App\Mail\SendEmail;

use Illuminate\Support\Facades\Route;


Route::get('/', function () {

    return view('Email Laravel');

});


Route::get('/send-email',function(){

    $data = [

        'name' => 'Admin PT. XYZ',

        'body' => 'Kirim Email Dengan Laravel'

    ];

    Mail::to('emailpenerima@gmail.com')->send(new SendEmail($data));

    dd("Email Berhasil dikirim.");

});


7. Mengirim Email

Buka browser lalu ketikan  http://localhost:8000/send-email. maka akan menampilkan hasil seperti berikut ini.


Kemudian lihat email yang dikirim :



Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...