Cara Mengirim Email Massal dengan JavaScript (Node.js) dan Excel

Cara Mengirim Email Massal dengan JavaScript (Node.js) dan Excel

Cara Mengirim Email Massal dengan JavaScript (Node.js) dan Excel
Kamis, 27 Maret 2025

Cara Mengirim Email Massal dengan JavaScript (Node.js) dan Excel



Mengirim email massal sering kali diperlukan dalam berbagai situasi, seperti kampanye pemasaran, pemberitahuan pelanggan, atau komunikasi internal perusahaan. Dalam artikel ini, kita akan membahas cara mengirim email massal menggunakan JavaScript (Node.js) dengan sumber data dari file Excel.


Apa yang Kita Butuhkan?

Sebelum mulai, pastikan Anda memiliki:

Node.js terinstal di komputer Anda
Akun email SMTP (misalnya Gmail, Outlook, atau layanan SMTP lainnya)
File Excel (.xlsx) berisi daftar penerima


Langkah 1: Persiapan Proyek Node.js

Pertama, buat folder proyek dan instal dependensi yang dibutuhkan:

mkdir email-massal cd email-massal npm init -y npm install nodemailer xlsx dotenv

📌 Penjelasan:

  • nodemailer → Untuk mengirim email

  • xlsx → Untuk membaca file Excel

  • dotenv → Untuk menyimpan kredensial dengan aman


Langkah 2: Buat File Excel Berisi Daftar Penerima

Buat file emails.xlsx dengan format seperti ini:

Nama Email
Andi andi@email.com
Budi budi@email.com
Citra citra@email.com

Langkah 3: Konfigurasi Kredensial SMTP

Buat file .env untuk menyimpan kredensial email Anda:

SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your-email@gmail.com SMTP_PASS=your-email-password

🔒 Catatan: Jika menggunakan Gmail, Anda perlu mengaktifkan App Password atau menggunakan layanan SMTP lain.


Langkah 4: Buat Script untuk Mengirim Email

Buat file sendEmails.js dan tambahkan kode berikut

const nodemailer = require("nodemailer");
const xlsx = require("xlsx");
require("dotenv").config();

// 1. Baca Data dari File Excel
const readExcel = (file) => {
	const workbook = xlsx.readFile(file);
	const sheet = workbook.Sheets[workbook.SheetNames[0]];
	return xlsx.utils.sheet_to_json(sheet);
};

// 2. Konfigurasi Transporter Email
const transporter = nodemailer.createTransport({
	host: process.env.SMTP_HOST,
	port: process.env.SMTP_PORT,
	secure: false,
	auth: {
		user: process.env.SMTP_USER,
		pass: process.env.SMTP_PASS
	}
});

// 3. Fungsi Mengirim Email
const sendEmail = async (recipient) => {
	const mailOptions = {
		from: process.env.SMTP_USER,
		to: recipient.Email,
		subject: "Email Massal dari Node.js",
		text: `Halo ${recipient.Nama}, ini adalah email massal yang dikirim menggunakan Node.js dan Excel!`,
	};

	try {
		await transporter.sendMail(mailOptions);
		console.log(`✅ Email terkirim ke ${recipient.Email}`);
	} catch (error) {
		console.error(`❌ Gagal mengirim ke ${recipient.Email}: ${error.message}`);
	}
};

// 4. Baca Data dan Kirim Email
const recipients = readExcel("emails.xlsx");
recipients.forEach((recipient) => {
	sendEmail(recipient);
});

Langkah 5: Jalankan Script

Setelah semuanya siap, jalankan perintah berikut di terminal:

node sendEmails.js

Jika berhasil, Anda akan melihat output seperti ini:

✅ Email terkirim ke andi@email.com ✅ Email terkirim ke budi@email.com ✅ Email terkirim ke citra@email.com

🎉 Selesai! Sekarang Anda telah berhasil mengirim email massal menggunakan Node.js dan file Excel.


Kesimpulan

Dengan Node.js, kita bisa mengotomatisasi pengiriman email dalam jumlah besar dengan mudah. Menggunakan file Excel sebagai sumber data membuatnya fleksibel untuk berbagai kebutuhan. Jika ingin mengembangkan lebih lanjut, Anda bisa:

  • Menambahkan template HTML agar email lebih menarik

  • Menggunakan layanan cloud SMTP seperti SendGrid atau Mailgun

  • Menjadwalkan pengiriman email menggunakan cron jobs

Semoga bermanfaat! 🚀

kalau kamu merasa terbantu dengan artikel ini, yuk traktir penulis, agar lebih semangat sharing berbagai hal di blog ini ^_^
via link berikut ya :
Trakteer Saya
Kamu juga bisa request custom aplikasi dan otomasi data dengan memberikan rinci fitur apa yang kamu inginkan dengan mulai harga Rp. 50.000,- segera klik link ini ya :
Cara Mengirim Email Massal dengan JavaScript (Node.js) dan Excel
4/ 5
Oleh

yuu.. kita budayakan berkomentar.. bersilaturahmi itu memperpanjang umur... ^_^