EngageLab Email CLI
EngageLab Email CLI membantu agen dan pengembang bekerja dengan email masuk dan keluar dari baris perintah.
Gunakan untuk:
- Membuat daftar kotak surat yang tersedia
- Membuat daftar dan memeriksa utas email
- Membaca pesan masuk
- Memeriksa pesan masuk baru
- Membalas pesan masuk
- Mengirim email baru
Instalasi
npm install -g @engagelabemail/cli
Periksa versi yang terinstal:
engagelab-email-cli -V
Ketika Anda menjalankan perintah yang terhubung ke EngageLab Email, CLI akan memeriksa apakah ada versi CLI yang lebih baru. Jika pembaruan diperlukan, proses akan berhenti dan menampilkan perintah pembaruan:
npm install -g @engagelabemail/cli@latest
Konfigurasi
Kelola Konfigurasi yang Tersimpan
Gunakan grup perintah config untuk menyimpan, memeriksa, atau menghapus kredensial lokal.
Simpan alamat layanan dan Kunci Rahasia secara lokal:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
Lihat konfigurasi yang tersimpan:
engagelab-email-cli config list
Hapus konfigurasi yang tersimpan:
engagelab-email-cli config clear
config list akan menyembunyikan Kunci Rahasia.
Gunakan Kredensial Global dengan Perintah Bisnis Apa Pun
Anda tidak perlu menyimpan kredensial terlebih dahulu. Anda dapat meneruskan --base-url dan --secret-key langsung sebelum perintah bisnis apa pun seperti threads ... atau emails .... Kredensial baris perintah ini hanya berlaku untuk perintah saat ini dan tidak akan menimpa konfigurasi yang tersimpan.
Contoh:
engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1
Mulai Cepat
Daftarkan pesan masuk terbaru:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
Baca satu pesan masuk:
engagelab-email-cli emails receiving get <message-uid>
Lihat utas lengkap di sekitar pesan:
engagelab-email-cli threads messages <thread-id> --include-content --limit 10
Balas pesan masuk:
engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
Kirim email baru:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Hello" \
--text "Hello from EngageLab Email CLI."
Untuk skrip atau agen, tambahkan --json untuk mendapatkan output yang dapat dibaca mesin:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json
Perintah
config set
Simpan konfigurasi lokal.
| Opsi | Deskripsi |
|---|---|
--base-url <url> |
Alamat layanan. Default ke ENGAGELAB_EMAIL_BASE_URL jika diatur. |
--secret-key <key> |
Kunci Rahasia. Default ke ENGAGELAB_EMAIL_SECRET_KEY jika diatur. |
Contoh:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
config list
Tampilkan konfigurasi yang tersimpan.
Contoh:
engagelab-email-cli config list
config clear
Hapus konfigurasi lokal yang tersimpan, termasuk baseUrl dan secretKey.
Contoh:
engagelab-email-cli config clear
mailbox list
Daftarkan kotak surat yang tersedia.
| Opsi | Deskripsi |
|---|---|
--mailbox <address> |
Filter berdasarkan alamat kotak surat. |
--page-no <number> |
Nomor halaman. |
--page-size <number> |
Ukuran halaman. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli mailbox list --page-size 20
threads list
Daftarkan utas email.
| Opsi | Deskripsi |
|---|---|
--mailbox-id <id> |
Filter berdasarkan ID kotak surat. |
--subject <text> |
Cari berdasarkan subjek yang telah dinormalisasi. |
--participant <email> |
Cari berdasarkan peserta. |
--start-time <timestamp> |
Stempel waktu mulai pesan terbaru dalam milidetik. |
--end-time <timestamp> |
Stempel waktu akhir pesan terbaru dalam milidetik. |
--page-no <number> |
Nomor halaman. |
--page-size <number> |
Ukuran halaman. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20
threads get <thread-id>
Tampilkan satu utas.
| Argumen/Opsi | Deskripsi |
|---|---|
<thread-id> |
ID utas. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50
threads messages <thread-id>
Daftarkan pesan dalam utas.
| Argumen/Opsi | Deskripsi |
|---|---|
<thread-id> |
ID utas. |
--limit <number> |
Batas pesan. |
--include-content |
Sertakan teks/html/header/lampiran. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json
emails receiving list
Daftarkan pesan masuk.
| Opsi | Deskripsi |
|---|---|
--mailbox-id <id> |
Filter berdasarkan ID kotak surat. |
--keyword <text> |
Kata kunci pencarian. |
--page-no <number> |
Nomor halaman. |
--page-size <number> |
Ukuran halaman. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli emails receiving list --keyword refund --page-size 20
emails receiving get <message-uid>
Tampilkan satu pesan masuk.
| Argumen/Opsi | Deskripsi |
|---|---|
<message-uid> |
UID pesan. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json
emails receiving listen
Periksa pesan masuk baru. Perintah ini terus berjalan sampai Anda menghentikannya dengan Ctrl+C.
| Opsi | Deskripsi |
|---|---|
--after <id> |
ID kursor dari hasil sebelumnya. |
--limit <number> |
Batas pesan. |
--interval <seconds> |
Interval pemeriksaan dalam detik (minimum 2). |
--json |
Keluarkan satu pesan JSON per baris. |
Contoh:
engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json
Lanjutkan dari kursor yang diketahui:
engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
emails receiving reply <message-uid>
Balas pesan masuk.
| Argumen/Opsi | Deskripsi |
|---|---|
<message-uid> |
UID pesan yang akan dibalas. |
--subject <text> |
Subjek balasan. |
--text <text> |
Isi teks biasa. |
--html <html> |
Isi HTML. |
--text-file <path> |
Baca isi teks biasa dari file. |
--html-file <path> |
Baca isi HTML dari file. |
--cc <email> |
Alamat CC. Dapat diulang. |
--bcc <email> |
Alamat BCC. Dapat diulang. |
--reply-to <email> |
Alamat Reply-To. Dapat diulang. |
--preview-text <text> |
Teks pratinjau email. |
--attachment <path> |
Lampirkan file lokal. Dapat diulang. Memerlukan --disposition. Maksimal 10 file, total 10MB setelah pengkodean base64 (sekitar 7.5MB file mentah). |
--disposition <value> |
Jenis lampiran: attachment atau inline. Diperlukan saat menggunakan --attachment. Dapat diulang atau diberikan sekali untuk semua lampiran. |
--content-id <id> |
Content-ID untuk lampiran gambar sebaris. Diperlukan saat --disposition inline digunakan dengan lampiran gambar. |
--sandbox |
Kirim dalam mode sandbox. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli emails receiving reply 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 \
--subject "Re: Refund update" \
--text "Thanks, we received your message." \
--attachment ./receipt.pdf \
--disposition attachment
emails send
Kirim email baru.
| Opsi | Deskripsi |
|---|---|
--mailbox-id <id> |
ID kotak surat. |
--from <email> |
Alamat email pengirim. |
--to <email> |
Alamat email penerima. Dapat diulang. |
--subject <text> |
Subjek email. |
--text <text> |
Isi teks biasa. |
--html <html> |
Isi HTML. |
--text-file <path> |
Baca isi teks biasa dari file. |
--html-file <path> |
Baca isi HTML dari file. |
--cc <email> |
Alamat CC. Dapat diulang. |
--bcc <email> |
Alamat BCC. Dapat diulang. |
--reply-to <email> |
Alamat Reply-To. Dapat diulang. |
--preview-text <text> |
Teks pratinjau email. |
--attachment <path> |
Lampirkan file lokal. Dapat diulang. Memerlukan --disposition. Maksimal 10 file, total 10MB setelah pengkodean base64 (sekitar 7.5MB file mentah). |
--disposition <value> |
Jenis lampiran: attachment atau inline. Diperlukan saat menggunakan --attachment. Dapat diulang atau diberikan sekali untuk semua lampiran. |
--content-id <id> |
Content-ID untuk lampiran gambar sebaris. Diperlukan saat --disposition inline digunakan dengan lampiran gambar. |
--sandbox |
Kirim dalam mode sandbox. |
--json |
Keluarkan JSON mentah. |
Contoh:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--to bob@example.com \
--subject "Refund update" \
--text "Your refund has been processed." \
--attachment ./receipt.pdf \
--disposition attachment
Kirim HTML dengan lampiran gambar sebaris:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
Metadata lampiran dapat diteruskan dengan dua cara yang kompatibel. Bentuk yang direkomendasikan mengikat metadata ke setiap jalur file, yang menghindari ambiguitas dengan beberapa lampiran:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Mixed attachments" --html "<p>Logo <img src=cid:image_1000></p>" --attachment "./receipt.pdf;disposition=attachment" --attachment "./logo.png;disposition=inline;content_id=image_1000"
Bentuk opsi terpisah tradisional juga didukung untuk kompatibilitas:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
Jangan campur metadata lampiran sebaris (path;disposition=...) dengan --disposition atau --content-id dalam perintah yang sama.
Kirim konten HTML dari file:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Monthly report" \
--html-file ./report.html
Output
Secara default, CLI mencetak tabel atau ringkasan yang dapat dibaca dan menampilkan pesan pemuatan singkat saat permintaan sedang berjalan.
Gunakan --json ketika alat atau skrip lain perlu mengurai hasilnya.
engagelab-email-cli emails receiving get <message-uid> --json
emails receiving listen --json mencetak satu objek JSON pesan per baris.
Kesalahan
Kesalahan yang dapat dibaca manusia menyertakan kode kesalahan bisnis ketika API mengembalikannya, misalnya [100101] unauthorized.
Kesalahan --json menggunakan format ini:
{
"error": {
"code": "auth_error",
"errorCode": 100101,
"message": "unauthorized"
}
}
Kode keluar:
| Kode Keluar | Arti |
|---|---|
1 |
Kesalahan parameter atau konfigurasi hilang |
2 |
Kegagalan autentikasi |
3 |
Sumber daya tidak ditemukan |
4 |
Konflik atau status sedang berlangsung |
5 |
Kesalahan server atau kesalahan jaringan |










