Email Account

Email Account adalah pengirim SMTP yang Anda daftarkan pada satu Space. Ini adalah resource yang menyimpan alamat server tujuan pengiriman email, informasi login, dan alamat pengirim sebagai satu kesatuan. Ketika statement EmailSend dari Script dijalankan, email yang sesungguhnya dikirim melalui Email Account ini. Misalnya, jika toko baju online ingin mengirim email konfirmasi setiap kali ada pesanan masuk, pertama daftarkan dulu Email Account yang dipakai untuk pengiriman, lalu buat Script mereferensikannya.

Email Account adalah resource di bawah Space yang dikelola di CMA, dengan path berbasis /spaces/{spaceId}/email-accounts. Tidak ada konsep publikasi (publish). Tanpa status atau tahap publikasi, begitu dibuat, ia langsung dapat dipakai untuk pengiriman. Sebagai gantinya, pembuatan bukanlah tindakan pembacaan yang tidak berdampak, melainkan tindakan yang benar-benar mengirim satu email untuk memverifikasi konfigurasi, dan informasi koneksi (endpoint·username·password) tidak dapat diubah setelah sekali dibuat. Kedua hal ini dibahas di bawah.

Struktur resource

Berikut adalah respons ketika sebuah Email Account dibuat. sys (properti sistem) memuat identifier dan versi, sedangkan body memuat konfigurasi pengirim (name·endpoint·username·fromAddress·fromName). Kata sandi (password) tidak muncul di mana pun dalam respons.

{
  "sys": {
    "id": "3trmXRMdKpLc7GfNbyVQeR2WsT9LnU",
    "type": "EmailAccount",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "9dLmQ2pVnRb8sTfWcXd3LhJ7gK", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-08-04T05:12:44.108Z",
    "updatedBy": { "sys": { "id": "9dLmQ2pVnRb8sTfWcXd3LhJ7gK", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-08-04T05:12:44.108Z",
    "version": 1
  },
  "name": "Pengiriman Notifikasi Pesanan",
  "endpoint": {
    "host": "smtp.gmail.com",
    "port": 587,
    "security": "StartTls"
  },
  "username": "orders@example-shop.com",
  "fromAddress": "orders@example-shop.com",
  "fromName": "Pesanan Toko Baju"
}

Kunci utama:

  • sys.id: identifier unik dari Email Account. Masuk ke {emailAccountId} pada path untuk pembacaan tunggal, pengubahan, dan penghapusan.
  • sys.version: versi resource. Dimulai dari 1 dan naik setiap kali diubah. Nilai ini dikirimkan sebagai header X-Weegloo-Version pada permintaan pengubahan (lihat Status dan batasan di bawah).
  • name: label yang tampil di konsol (mis. Pengiriman Notifikasi Pesanan). Tidak dipakai untuk pengiriman, dan bukan nama tampilan From. Ini hanya nama untuk membedakan beberapa pengirim.
  • endpoint: server SMTP yang akan dihubungi. Terdiri dari tiga nilai: host·port·security.
  • username: nama pengguna login SMTP. Berbeda-beda per penyedia. Bisa sama persis dengan alamat email, atau berupa string tetap yang ditentukan layanan pengiriman, atau login berbasis domain.
  • fromAddress: alamat pengirim. Dipakai sekaligus sebagai alamat pengembalian amplop (MAIL FROM) dan alamat From yang terlihat oleh penerima.
  • fromName: nama tampilan yang terlihat pada header From (opsional). Jika kosong, hanya alamat yang muncul.

Kata sandi (password) adalah nilai write-only yang hanya dikirim melalui body permintaan pembuatan, sehingga ia tidak dikembalikan pada respons di atas maupun pada pembacaan atau daftar mana pun setelahnya. username muncul pada respons pembacaan persis seperti nilai yang Anda masukkan.

Properti sistem (sys)

Setiap Email Account memuat properti sistem umum dalam objek sys. space, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropertiTipeDeskripsi
idstringIdentifier unik resource.
typestringJenis resource. Email Account selalu "EmailAccount".
spaceRefer<Space>Space tempat pengirim ini berada.
createdByRefer<User>Pengguna yang mendaftarkan.
createdAtstring (date-time)Waktu pembuatan.
updatedByRefer<User>Pengguna yang terakhir mengubah.
updatedAtstring (date-time)Waktu pengubahan terakhir.
versioninteger (≥1)Versi resource. Saat mengubah, kirim nilai saat ini melalui header X-Weegloo-Version.

Properti body:

PropertiTipeDeskripsi
namestring (1~64)Label yang tampil di konsol. Tidak dipakai untuk pengiriman dan bukan nama tampilan From.
endpointSmtpEndpointServer SMTP yang akan dihubungi (host·port·security).
endpoint.hoststringHost server SMTP (mis. smtp.gmail.com).
endpoint.portinteger (1~65535)Port SMTP. Secara konvensi, 587 berpasangan dengan StartTls dan 465 dengan Tls.
endpoint.securitystringKeamanan pada jalur transport. Salah satu dari StartTls atau Tls. Karena kata sandi lewat di sini, koneksi plaintext tidak diizinkan.
usernamestringNama pengguna login SMTP. Berbeda-beda per penyedia dan bisa jadi bukan alamat email.
fromAddressstring (email, ≤254)Alamat pengirim. Dipakai sebagai alamat pengembalian amplop (MAIL FROM) sekaligus header From. Server dapat menulis ulangnya (mis. Gmail memaksanya menjadi akun terautentikasi).
fromNamestringNama tampilan header From. Opsional. Jika kosong, hanya alamat yang muncul.

Input khusus body permintaan pembuatan:

PropertiTipeDeskripsi
passwordstringKata sandi login SMTP. Bersifat write-only. Tidak muncul pada respons mana pun, nilainya tidak dapat dibaca kembali, dan hanya dapat diganti (dibuat ulang). Wajib.

Informasi pengirim vs. informasi koneksi

Nilai Email Account terbagi menjadi dua jenis. Pembagian inilah yang menentukan apa yang dapat diubah.

  • Informasi koneksi — endpoint·username·password. Tidak dapat diubah setelah dibuat. Saat memindahkan server pengiriman atau merotasi informasi login, buat Email Account baru dan hapus yang lama. Kata sandi, seperti dijelaskan di atas, tidak dapat dibaca kembali, jadi jika hilang, tangani dengan pembuatan ulang, bukan penyetelan ulang.
  • Informasi pengirim — name·fromAddress·fromName. Dapat diubah dengan pengubahan (PUT) meski sudah dibuat. Dipakai untuk merapikan label atau mengubah alamat pengirim dan nama tampilan, dan pada saat itu informasi koneksi tetap dipertahankan.

Email yang sesungguhnya dikirim saat pembuatan

Pembuatan Email Account bukanlah tindakan yang sekadar menyimpan konfigurasi. Sebelum menyimpan, server benar-benar terhubung menggunakan endpoint·username·password yang dimasukkan dan mengirim satu email uji. Tujuan pengiriman adalah fromAddress, dan jika username berupa alamat yang berbeda, alamat itu pun dapat ikut disertakan.

  • Resource baru tersimpan hanya jika pengiriman berhasil.
  • Jika server menolak pada tahap mana pun di antara koneksi, autentikasi, atau pengiriman, prosesnya gagal dan tidak ada yang dibuat, dan respons memuat alasan kegagalan yang dikembalikan server.

Karena itu, perhatikan bahwa mengulang pembuatan dengan nilai yang salah akan mencoba pengiriman yang sesungguhnya setiap kalinya.

Status dan batasan

Batasan nilai yang berlaku saat pembuatan dan pengubahan.

SasaranBatasan
name1~64 karakter, wajib.
endpoint.hostWajib.
endpoint.port1~65535, wajib.
endpoint.securityStartTls atau Tls, wajib. Plaintext tidak boleh.
usernameWajib (saat pembuatan). Tidak dapat diubah setelah dibuat.
passwordWajib (saat pembuatan), write-only. Tidak dapat diubah setelah dibuat (penggantian berarti pembuatan ulang).
fromAddressFormat email, maksimum 254 karakter, wajib.
fromNameOpsional.

Aturan tentang perilaku dan izin:

  • Informasi koneksi bersifat tetap. Yang dapat diubah dengan Update (PUT) hanyalah name·fromAddress·fromName. Untuk mengubah endpoint·username·password, buat yang baru dan hapus yang lama.
  • Pengubahan memerlukan versi. Pada permintaan Update, kirim nilai sys.version saat ini melalui header X-Weegloo-Version. Jika nilainya bukan yang terbaru, permintaan ditolak karena konflik versi. Dalam hal ini, baca ulang resource lalu coba lagi dengan sys.version terbaru.
  • Kata sandi tidak dapat dibaca kembali. Karena tidak muncul pada pembacaan atau daftar mana pun, jika hilang, tangani dengan pembuatan ulang, bukan penyetelan ulang.
  • Server SMTP yang dapat dipakai berbeda menurut paket. Host penyedia yang disediakan sebagai preset (Gmail·Naver·Resend·Brevo) dapat didaftarkan bahkan pada paket yang lebih rendah. Host arbitrer (swakelola) yang tidak ada dalam preset hanya dapat dipakai jika metode pembayaran telah terdaftar. Untuk kebijakan per paket, lihat Paket Harga.

API

URL basis untuk semua endpoint di bawah adalah https://cma.weegloo.com/v1, dan diperlukan Bearer token yang mengautentikasi CMA pada header Authorization. Pengubahan (PUT) juga memerlukan header X-Weegloo-Version tambahan.

  • Script: mengirim email melalui Email Account ini dengan statement EmailSend.
  • SpaceRole: peran yang mendefinisikan izin akses resource pada Space ini.
  • Paket Harga: kebijakan penggunaan host penyedia preset dan host SMTP arbitrer (swakelola).