#32-Laravel Kirim Email

Mailtrap.io

Sebenarnya segala sesuatunya sudah dipersiapkan dengan lengkap oleh laravel, hanya saja sistem kita belum bisa mengirimkan email konfirmasi reset password secara otomatis ke client/user. karena kita belum menghubungkan project kita dengan mail service.

Untuk itu kita perlu SMTP server. SMTP adalah singkatan dari Simple Mail Transfer Protocol. SMTP digunakan untuk mengirim komunikasi ke server. untuk mengirimkan email ke penerima.

Untuk percobaan, kita bisa menggunakan Mailtrap.io secara gratis.

Mailtrap adalah fake SMTP server untuk percobaan. kita bisa menggunakan mailtrap untuk membuat simulasi percobaan pengiriman dan penerimaan email pada saat proses pengembangan aplikasi atau website. sebelum akhirnya aplikasi atau website kita benar-benar di publis.

Bagaimana cara menggunakan mailtrap? simak penjelasan berikut.

Mendaftar Di Mailtrap.io

Untuk menggunakan mailtrap, silahkan teman-teman mendaftar di situs resminya. yaitu https://mailtrap.io/.

setelah teregister masuk page inbox lalu kita akan mendapatkan info smtp setting sbb :

Mailtrap

Nah, username dan password inilah yang akan kita masukkan ke project laravel kita untuk menghubungkan project laravel dengan mailtrap.

Buka file .env. dan isikan username dan password SMTP yang teman-teman dapatkan dari mailtrap.

Konfigurasi SMTP in .env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=sesuaikan
MAIL_PASSWORD=sesuaikan
MAIL_ENCRYPTION=null

Membuat Route & Blade View

Route::get('/testemail/send', 'TestEmailController@sendEMail');

Next, we need to create email blade view file in views folder of view. Go to the resources/views/ and create a view file name mailtemp1.blade.php. Put bellow code:

<h3>Halo, {{ $nama }} !</h3>
<p>{{ $website }}</p>

<p>Selamat datang di <a href="https://ombagoes.com">omabgoes.com</a></p>

Membuat Controller & Method

We need to create new controller EmailController that will manage one method. lets use this below command and create Controller.

Kita perlu membuat controller baru TestEmailController yang memiliki method untuk mengirim email. Kita buat controller menggunakan php artisan.

php artisan make:controller TestEmailController

app/Http/Controllers/TestEmailController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Mail\MailTemp1;
use Illuminate\Support\Facades\Mail;

class TestEmailController extends Controller
{
    public function send(){
        Mail::to("s.bagoes@gmail.com")->send(new MailTemp1());
 
		return "Email telah dikirim";
    }
}

Membuat Class Mailable

php artisan make:mail MailTemp1

app/Http/Controllers/Mail/MailTemp1.php

<?php

namespace App\Mail;

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

class MailTemp1 extends Mailable
{
    use Queueable, SerializesModels;
    public function __construct()
    {
        
    }

    public function build()
    {
       return $this->from('s.bagoes@ombagoes.com')
                   ->view('mailtemp1')
                   ->with(
                    [
                        'nama' => 'Om Bagoes',
                        'website' => 'ombagoes.com',
                    ]);
    }
}

Jalankan

Jalankan php artisan serve, lalu buka http://locahost:8000/testemail/send

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>