Cara Mengirim Email Pada Django Web Framework Dengan Gmail SMTP

LATAR BELAKANG

Email masih jadi pilihan untuk mengirimkan berbagai informasi dari sebuah web kepada para penggunanya. Mulai dari OTP, Reset Password maupun verifikasi dan validasi email pada saat pendaftaran. Berikut adalah cara mengirim email pada Django Web Framework dengan contoh gmail smtp. Django web framework telah menyediakan dokumentasinya untuk implementasi mengirim email.

PEMBAHASAN

  Django memiliki keunggulan pada fitur mengirim emailnya yaitu setup email dilakukan pada pengaturan utamanya yaitu pada file settings.py sehingga saat akan mengirim email tidak perlu melakukan setup berkali - kali ketika inisiasi kode. Berikut adalah langkah kirim email pada framework django :

Setup Email

Buka file settings.py, letaknya ada pada folder utama projek. Tambahkan kode di bawah ini pada file tersebut

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'alamat_email'
EMAIL_HOST_PASSWORD = 'password_email'
	

alamat_email dan password_email diisikan sesuai dengan email yang akan digunakan sebagai sender(pengirim), aktifkan juga LESS SECURE pada email tersebut. Bagaimana agar tidak perlu password atau mengaktifkan LESS SECURE? alternatifnya adalah menggunakan GMAIL API ataupun mail server dari hosting akan dibahas diartikel lain.

Saat ini tidak perlu menggunakan LESS SECURE, tapi bisa menggunakan App Password. Cara membuat App Password

Implementasi

Berikut contoh implementasi mengirim email pada django framework. Contoh kasus yang digunakan adalah mengirim kode otp dan format email yang dikirimkan adalah HTML.

  1. Import fungsi yang diperlukan
    beberapa fungsi yang perlu di-import adalah fungsi untuk mengirim email di bawah in from django.core.mail import EmailMultiAlternatives dan fungsi untuk render template email html di bawah ini from django.template.loade import render_to_string dan from django.utils.html import strip_tags
  2. Template Email
    Agar dan lebih rapi email dibuat menggunakan html dan diseragamkan menggunakan template. Buat file html pada folder templates, contohnya email.html berikut contoh template email OTP.
    Salam {{name}}!
    <br><br>
    Kami telah menerima permintaan Login pada akun Anda.<br>
    <br>
    Berikut OTP untuk Login :
    <b>{{otp}}</b>
    <br><br>
    Namun bila anda tidak pernah mencoba login harap abaikan email ini. Harap jaga kerahasiaan OTP ini.
    <br><br>
    Terimakasih
          	
  3. Kode Kirim Email
    Di bawah ini adalah kode kirim email dengan format html pada langkah sebelumnya.
    name = 'Tata Adi Nugroho'
    otp = '5758'
    email = 'tata@email.com'
    template = render_to_string('email.html', {'name':name , 'otp' : otp })
    textTemplate = strip_tags(template)
    emailMessage = EmailMultiAlternatives(
         'OTP Login',
         textTemplate,
         'otp-norepy@email.com',
         email,
    )
    emailMessage.attach_alternative(template, "text/html")
    emailMessage.fail_silently = False
    emailMessage.send()
          
    'OTP Login' merupakan judul email sedangkan 'otp-noreply@email.com' adalah nama alias dari email pengirim.

KESIMPULAN

Contoh hasil email yang terkirim :

Mengirim email dengan framework Django cukup mudah terlebih sudah memiliki fitur yang bagus dan dukungan dari framework itu sendiri. Jika gagal menjalankan tutorial di atas bisa menghubungki penulis lewat media sosial atau komen di artikel ini.

REFERENSI
Saya seorang programmer dengan fokus developer Web dan Android.