Panduan Lengkap Setup Email SMTP untuk Aplikasi Web

Panduan Lengkap Setup Email SMTP untuk Aplikasi Web

5 kali dibaca 0 orang merasa ini berguna

SMTP (Simple Mail Transfer Protocol) adalah protokol standar yang digunakan untuk mengirimkan email dari aplikasi web Anda (seperti form registrasi, reset password, atau notifikasi transaksi) ke kotak masuk pengguna.

Dalam panduan ini, kita akan membahas cara mendapatkan kredensial SMTP menggunakan layanan populer (Gmail & Mailgun) dan cara mengonfigurasinya di dalam kode aplikasi Node.js.

Metode 1: Menggunakan SMTP Gmail (Gratis & Mudah)

Gmail menyediakan server SMTP gratis yang bisa digunakan untuk mengirim email. Namun, karena alasan keamanan, Anda tidak bisa menggunakan password Gmail utama Anda langsung di dalam kode. Anda harus membuat App Password.

Langkah 1: Aktifkan 2-Step Verification

  1. Buka halaman pengaturan Google Account.
  2. Masuk ke menu Security (Keamanan).
  3. Di bagian "How you sign in to Google", pastikan 2-Step Verification (Verifikasi 2 Langkah) sudah dalam status Active (Aktif).

Langkah 2: Buat App Password

  1. Masuk ke menu 2-Step Verification yang sudah aktif tadi.
  2. Scroll ke bagian paling bawah dan pilih App passwords (Sandi aplikasi).
  3. Masukkan nama aplikasi Anda (misalnya: "Website ShiroKode") lalu klik Create.
  4. Salin kode rahasia 16 karakter yang muncul di layar. Kode inilah yang akan menjadi password SMTP Anda.

Detail Kredensial SMTP Gmail:

  • SMTP Server/Host: smtp.gmail.com
  • Port: 465 (SSL) atau 587 (TLS)
  • Username: Alamat email Gmail Anda
  • Password: 16 Karakter App Password yang baru dibuat

Metode 2: Menggunakan Layanan SMTP Pihak Ketiga (Mailgun / SendGrid)

Jika aplikasi Anda mengirimkan email dalam volume besar (ribuan email per hari), sangat disarankan menggunakan layanan SMTP profesional seperti Mailgun, SendGrid, atau Brevo agar email tidak masuk ke folder spam.

Langkah Setup (Secara Umum):

  1. Buat akun di platform penyedia (misalnya: Mailgun).
  2. Tambahkan domain website Anda (misalnya: mail.domainkamu.com) ke dashboard mereka.
  3. Lakukan verifikasi domain dengan menambahkan record TXT (SPF & DKIM) dan MX di pengatur DNS domain Anda (seperti di Cloudflare atau Niagahoster).
  4. Setelah terverifikasi, masuk ke menu SMTP Credentials di dashboard untuk membuat username dan password SMTP baru.

Langkah 3: Menghubungkan SMTP ke Aplikasi Node.js

Untuk mengirim email menggunakan SMTP di Node.js, library yang paling umum digunakan adalah Nodemailer.

1. Install Nodemailer

bash
npm install nodemailer

2. Tulis Kode Pengiriman Email (mailer.js)

javascript
const nodemailer = require('nodemailer');

// 1. Konfigurasi Transporter SMTP
const transporter = nodemailer.createTransport({
  host: 'smtp.gmail.com', // Ganti dengan host SMTP Anda jika non-Gmail
  port: 465,              // Gunakan 465 untuk SSL atau 587 untuk TLS
  secure: true,           // true untuk port 465, false untuk port 587
  auth: {
    user: 'email-anda@gmail.com',
    pass: 'xxxx-xxxx-xxxx-xxxx' // Isi dengan App Password 16 karakter
  }
});

// 2. Fungsi Kirim Email
const sendWelcomeEmail = async (toEmail, userName) => {
  const mailOptions = {
    from: '"ShiroKode Support" <email-anda@gmail.com>',
    to: toEmail,
    subject: 'Selamat Datang di ShiroKode! 🚀',
    html: `
      <div style="font-family: sans-serif; padding: 20px; background-color: #f1f5f9;">
        <h2 style="color: #0f172a;">Halo ${userName},</h2>
        <p style="color: #334155;">Akun Anda telah berhasil dibuat. Silakan login untuk mulai mengunduh script premium kami.</p>
        <br />
        <p style="color: #64748b;">Salam hangat,<br/>Tim ShiroKode</p>
      </div>
    `
  };

  try {
    const info = await transporter.sendMail(mailOptions);
    console.log('Email berhasil dikirim: %s', info.messageId);
  } catch (error) {
    console.error('Gagal mengirim email:', error);
  }
};

module.exports = sendWelcomeEmail;

Tips Tambahan Pengelolaan SMTP

  • Selalu Amankan Kredensial: Jangan pernah melakukan hardcode password SMTP di dalam file script utama Anda. Selalu gunakan file .env untuk menyimpan data sensitif:

    env
    SMTP_HOST=smtp.gmail.com
    SMTP_PORT=465
    SMTP_USER=email-anda@gmail.com
    SMTP_PASS=xxxx-xxxx-xxxx-xxx
    
  • Perhatikan Limitasi: Akun Gmail gratisan memiliki batas pengiriman maksimal 500 email per hari. Jika bisnis Anda bertambah besar, segera migrasi ke SMTP relay berbayar untuk menghindari pemblokiran akun.

Aron GIF

Belum menemukan solusi?

atauJoin komunitas

Tampilan

Mode Tema

Kecerahan (100%)

Apakah artikel ini membantu?