Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

Cara Mengirim Email di Laravel

by
Difficulty:BeginnerLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Meyria (you can also view the original English article)

Pada artikel ini, kita akan mengeksplorasi Mail API di web framework Laravel. Laravel mengambil keuntungan dari library populer SwiftMailer, yang mudah digunakan dan dilengkapi dengan berbagai driver email yang bisa dipilih. Pada tahap akhir artikel ini, kita akan melalui demonstrasi mendalam tentang konsep yang dibahas di paruh pertama artikel ini.

Menyiapkan Prasyarat

Laravel menerapkan pembungkus di atas library SwiftMailer yang membuat manajemen email sangat mudah dikonfigurasi dan digunakan pada saat bersamaan. Anda dapat menemukan pengaturan email default di config/mail.php.

Ketika mengirim email, Laravel mendukung driver yang berbeda untuk dipilih. Seperti yang Anda lihat, default MAIL_DRIVER diset ke smtp.

Jika Anda akan menggunakan driver smtp untuk mengirim email, Anda juga diharuskan mengatur setelan terkait hal lainnya seperti MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, MAIL_USERNAME, dan MAIL_PASSWORD

Di sisi lain, jika Anda akan menggunakan driver sendmail, maka Anda ingin memastikan bahwa jalur sistem sendmail diset ke nilai yang benar di file config/mail.php.

Anda juga dapat mengatur alamat from yang akan digunakan saat mengirim kiriman di bawah from kunci. Dan akhirnya, jika Anda ingin menggunakan rendering email berbasiskan-Markdown, Anda dapat mengatur pengaturan di bawah markdown kunci.

Ceri di atas adalah bahwa Anda juga bisa menggunakan penyedia layanan email pihak ketiga seperti Mailgun, Mandrill, SES, dan SparkPost. Jika Anda menggunakan salah satu layanan tersebut, Anda harus memastikan bahwa Anda mengatur setelan yang sesuai di file config/services.php.

Jadi itu adalah pengantar dasar untuk pengaturan mail API yang terkait di Laravel. Dari bagian selanjutnya dan seterusnya, kita akan melalui contoh khusus yang menunjukkan bagaimana cara mengirim email.

Membuat Mailable Class

Pada bagian ini, kita akan membuat class mailable, yang akan digunakan untuk mengirim email. Kelas yang dapat dikirim bertanggung jawab untuk mengirim email menggunakan mailer yang dikonfigurasi di file config/mail.php. Sebenarnya, Laravel sudah menyediakan perintah artisan yang memungkinkan kita membuat template dasar.

That should create a blank email template at app/Mail/DemoEmail.php, as shown in the following snippet.

Mari kita ganti isi file itu dengan yang berikut ini.

Ada dua metode penting yang umumnya bisa dilakukan oleh kelas mailable untuk diimplementasikan—__construct dan build. Metode __construct digunakan untuk menginisialisasi objek yang seharusnya Anda gunakan dalam template email. Di sisi lain, metode build digunakan untuk menginisialisasi lebih banyak nilai spesifik-email seperti dari, template tampilan, lampiran dan sejenisnya.

Dalam kasus kita, kita telah melewati objek $demo sebagai argumen konstruktor, dan ditugaskan ke properti publik demo.

Dalam metode build, kita telah menginisialisasi spesifik-email konfigurasi.

  • from digunakan untuk menetapkan alamat email yang akan digunakan sebagai alamat.
  • Dengan menggunakan metode view, Anda dapat mengatur template email yang akan digunakan saat mengirim email menggunakan surat ini. Dalam kasus kita, kita telah mengaturnya ke mails.demo, dan ini berarti Anda perlu membuat file template tampilan di resources/views/mails/demo.blade.php.
  • Selanjutnya, metode text digunakan untuk mengatur versi teks biasa dari template email.
  • Seperti yang baru saja kita bahas, metode __construct digunakan untuk mengatur objek yang akan digunakan dalam template email, Anda juga dapat menggunakan metode with yang memungkinkan Anda mengatur data tampilan suatu pesan.
  • Selanjutnya, kita telah menggunakan metode attach untuk melampirkan gambar dengan sebuah pesan.

Tentu saja, kita perlu membuat template email yang seharusnya kita gunakan saat mengirim email. Silakan membuat sebuah file resources/views/mails/demo.blade.php seperti yang ditunjukkan pada snipet berikut.

Juga, mari kita buat versi teks biasa dari file itu di resources/views/mails/demo_plain.blade.php.

Jadi itu adalah mailable class yang anda inginkan, dan kita belum melakukannya karena kita perlu menggunakan facade Mail untuk benar-benar mengirim email. Pada bagian berikutnya, kita akan membahas bagaimana Anda dapat menggunakan Facade Mail untuk mengirim email menggunakan Mailable class DemoEmail yang baru saja dibuat di bagian ini.

Membungkus

Pada bagian ini, kita akan membuat sebuah contoh untuk menunjukkan bagaimana anda dapat menggunakan class Mailable yang telah dibuat di bagian terakhir.

Mari buat sebuah file controller di app/Http/Controllers/MailController.php dengan konten berikut.

Penting untuk dicatat bahwa kami telah menyertakan Facade Illuminate\Support\Facades\Mail yang akan digunakan untuk mengirim email. Dalam metode send, pernyataan berikut bertanggung jawab untuk mengirim email dengan menginisialisasi Mailable App\Mail\DemoEmail di tempat pertama.

Metode to pada Facade Illuminate\Support\Facades\Mail mengembalikan sebuah instance dari class \Illuminate\Mail\PendingMail, yang sudah berisi konfigurasi mailer dalam file config/mail.php.

Dan akhirnya, kita gunakan metode send dari class \Illuminate\Mail\PendingMail yang mengirim email yang sebenarnya.

Untuk mengujinya, mari tambahkan route yang diasosiasikan di file routes/web.php

Dan dengan itu di tempat, anda dapat menjalankan URL http://your-laravel-site.com/mail/send untuk melihat apakah ia bekerja seperti yang diharapkan.

Di sisi lain, jika anda ingin menguji template email anda dengan cepat, tanpa mengirim email yang sebenarnya, ada ketentuan di Laravel yang memungkinkan anda mencatat semua email keluar.

Untuk mencapainya, Anda perlu mengatur nilai MAIL_DRIVER untuk log di file config/mail.php. Selanjutnya, anda bisa menjalankan URL yang disebutkan di atas dan memeriksa file log untuk memeriksa apakah template email telah tercatat di sana.

Jika semuanya berjalan baik, anda harus melihat email yang masuk ke file storage/log/laravel.log.

Itu cukup banyak sejauh menyangkut fitur mail di Laravel, dan itu menyimpulkan artikel ini juga.

Kesimpulan

Hari ini, kita melalui mail API yang dibangun di dalam Laravel, dan ini juga mendukung berbagai macam driver.

Dimulai dengan konsep dasar, kita menerapkan mailable class yang merupakan elemen penting dalam mail API di Laravel saat kita pindahkan. Pada akhirnya, kita juga menguji mailable kelas dengan membuat sebuah custom controller untuk melihat apakah ini benar-benar bekerja.

Jika anda baru saja memulai dengan Laravel atau mencari untuk memperluas pengetahuan anda, situs, atau aplikasi dengan ekstensi, kami memiliki berbagai hal yang anda dapat pelajari di Envato Market.

Saya ingin tahu umpan balik anda dalam bentuk kueri dan komentar menggunakan umpan di bawah ini!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.