---
title: "Cara mengambil kode OTP Hotmail lewat API untuk pengujian"
description: "Ambil OTP dari Hotmail milik sendiri lewat OAuth dan API Mailera. Batasi akses, pilih kotak surat yang tepat, dan cegah pemakaian kode lama saat pengujian."
url: https://mailera.app/id/blog/cara-mengambil-kode-otp-hotmail-api
published: 2026-10-25
updated: 2026-10-25
---

# Cara mengambil kode OTP Hotmail lewat API untuk pengujian

Hubungkan Hotmail melalui OAuth Microsoft, pilih kotak surat secara eksplisit, lalu ambil OTP dengan penyaring yang sesuai.

## Apa yang perlu disiapkan untuk kotak surat Hotmail?

Siapkan alamat `@hotmail.com` milik Anda, akses ke aplikasi yang diizinkan untuk diuji, serta akun Mailera dengan peran Admin atau Leader. Hanya kedua peran tersebut yang dapat menambahkan kotak surat. Pisahkan kotak surat pengujian ke grup khusus agar kunci API tidak perlu mengakses email kerja lainnya.

OTP adalah kode sekali pakai. Dalam alur ini, API mengambil kode yang sudah dikirim aplikasi ke email Anda. API pembaca kotak surat bukan layanan yang menerbitkan atau memverifikasi kode tersebut.

Hotmail menggunakan [koneksi Microsoft di Mailera](https://mailera.app/id/providers/microsoft) melalui Microsoft Graph dan OAuth, bukan layanan OTP tersendiri. Jika Anda baru menyiapkan pembacaan kode email, [panduan membaca OTP dari kotak surat sendiri](https://mailera.app/id/blog/ambil-kode-otp-email-api) menjelaskan alur dasarnya. Pilih kotak surat Hotmail yang tepat dan pisahkan setiap percobaan pengujian.

![Alur OTP dari aplikasi uji melalui Hotmail dan Mailera kembali ke aplikasi untuk verifikasi.](https://mailera.app/media/124d9a7a816c62b2/cara-mengambil-kode-otp-hotmail-lewat-api-untuk-pengujian-id-1200.jpg)
_OAuth menghubungkan kotak surat; kunci API mengizinkan skrip membacanya. Verifikasi kode tetap dilakukan aplikasi tujuan._

## Bagaimana menghubungkan Hotmail dan membatasi akses API?

Ada dua lapisan akses: persetujuan OAuth memberi Mailera akses ke kotak surat Microsoft, sedangkan kunci API memberi skrip Anda akses ke Mailera. Jangan menukar kunci API dengan token Microsoft.

### Hubungkan kotak surat melalui OAuth

1. Buka **Kotak surat**, lalu pilih **Tambah kotak surat**.
2. Pilih tab **Masuk dengan Microsoft**.
3. Masuk menggunakan akun Hotmail uji yang benar dan selesaikan persetujuan OAuth di Microsoft.
4. Pastikan alamat yang terhubung adalah alamat tujuan pengujian. Tempatkan kotak surat itu dalam grup pengujian.

Dalam [alur akses atas nama pengguna Microsoft](https://learn.microsoft.com/en-us/graph/auth-v2-user), pengguna mengizinkan aplikasi bertindak atas namanya. Koneksi Microsoft di Mailera tidak menggunakan sandi aplikasi (app password). Jika Anda sebelumnya mencoba jalur tersebut, lihat [panduan mengganti koneksi Outlook berbasis sandi aplikasi dengan OAuth](https://mailera.app/id/blog/kata-sandi-aplikasi-outlook-gagal-oauth).

![Tab Masuk dengan Microsoft pada halaman Tambah kotak surat Mailera.](https://mailera.app/media/e1a73d66eb389fda/sandi-aplikasi-atau-oauth-panduan-koneksi-email-untuk-agen-id-1200.jpg)
_Gunakan Masuk dengan Microsoft untuk menghubungkan kotak surat Hotmail melalui OAuth._

### Buat kunci yang hanya bisa membaca grup pengujian

1. Buka **Pengaturan**, masuk ke tab kunci API, lalu pilih **Buat API key**.
2. Isi **Nama deskriptif** agar kegunaan kunci mudah dikenali.
3. Pada **Cakupan kotak surat**, pilih grup pengujian, bukan semua grup.
4. Aktifkan izin baca, yaitu scope `read`. Pembacaan OTP tidak membutuhkan izin mengirim pesan.
5. Atur **Masa berlaku** sesuai durasi penggunaan, lalu simpan kunci di penyimpanan rahasia sisi server.

Mailera menampilkan kunci baru hanya sekali. Sediakan nilainya sebagai variabel lingkungan `$MAILERA_API_KEY`; jangan menuliskannya di kode sumber atau konfigurasi frontend. Nama izin Microsoft Graph dan scope kunci API Mailera adalah dua hal berbeda. Prinsipnya sama: gunakan akses minimum, seperti yang dianjurkan dalam [referensi izin Microsoft Graph](https://learn.microsoft.com/en-us/graph/permissions-reference).

![Pengaturan kunci API Mailera yang dibatasi ke grup kotak surat pengujian dengan izin baca.](https://mailera.app/media/bf978c180d050565/cara-mengambil-kode-otp-hotmail-lewat-api-untuk-pengujian-id-1200.jpg)
_Batasi kunci pembaca OTP ke grup pengujian dan scope read._

## Bagaimana mengambil OTP untuk percobaan yang tepat?

Contoh berikut memakai REST API Mailera. [Halaman pengembang Mailera](https://mailera.app/id/developers) menjelaskan jalur integrasinya, sedangkan [dokumentasi API](https://mailera.app/id/docs) menjadi rujukan endpoint saat Anda menyusun skrip.

Jalankan contoh di lingkungan privat. Respons pembacaan email dapat memuat informasi sensitif; jangan arahkan keluarannya ke log CI yang dapat dibaca bersama.

### 1. Cocokkan alamat sebelum menyimpan id

Ambil daftar kotak surat yang dapat diakses kunci:

```bash
curl --silent --show-error \
  'https://mailera.app/api/public/v1/mailboxes' \
  -H "Authorization: Bearer $MAILERA_API_KEY"
```

Pada array `data`, cocokkan `email` dengan alamat Hotmail uji Anda. Ambil `id` dari objek yang sama, lalu sediakan sebagai `$MAILBOX_ID`. Jangan asal memilih elemen pertama hanya karena saat pengembangan daftarnya kebetulan cuma berisi satu hasil. Respons juga memiliki `total`, `limit`, dan `offset`; periksa halaman berikutnya bila alamat yang dicari belum terlihat.

### 2. Mulai satu percobaan yang jelas

Catat waktu mulai percobaan di sistem pengujian, lalu minta aplikasi mengirim OTP ke alamat tersebut. Simpan hubungan antara percobaan, alamat tujuan, dan `$MAILBOX_ID` pada sisi pengujian Anda.

Untuk awal implementasi, jalankan satu percobaan aktif per kotak surat. Bila beberapa percobaan memakai alamat, pengirim, dan subjek yang sama secara bersamaan, jangan memilih kode berdasarkan urutan kedatangan saja.

### 3. Ambil kode dengan penyaring

Endpoint `GET /mailboxes/{id}/otp` mengambil OTP terbaru dan membutuhkan scope `read`. Parameter yang tersedia adalah:

| Parameter | Penempatan | Penggunaan |
| --- | --- | --- |
| `id` | Path | Memilih kotak surat yang sudah dicocokkan dengan alamat tujuan. |
| `from` | Query | Membatasi pencarian berdasarkan pengirim email OTP. |
| `subject` | Query | Membatasi pencarian berdasarkan subjek email. |
| `since_minutes` | Query | Parameter tambahan yang tersedia; contoh di bawah memakai nilai `5`. |

Gunakan pengirim dan subjek dari email aplikasi uji Anda. Contoh ini memakai alamat pengirim nonrahasia dan nilai contoh `5` untuk `since_minutes`.

```bash
curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/otp" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'from=auth@example.com' \
  --data-urlencode 'subject=Kode masuk pengujian' \
  --data-urlencode 'since_minutes=5'
```

Ganti nilai contoh dengan pengirim dan subjek aplikasi Anda. Jangan mengandalkan asumsi tentang wildcard atau pencocokan huruf besar-kecil saat memisahkan percobaan.

### 4. Gunakan pencarian OTP jika perlu membaca kode beserta pesan asalnya

OTP terbaru belum tentu berasal dari permintaan terbaru Anda. Untuk alur yang memerlukan kode beserta metadata pesan asalnya, gunakan `GET /messages/search` dengan `extract=otp` sebagai jalur pengambilan kode. Gunakan kunci `read` yang sama dan batasi pengirim melalui parameter `from`.

Pada setiap objek dalam array `data`, `otp.code` berada bersama metadata pesan tersebut. Sebelum memilih kode, cocokkan `mailbox_id` pada objek hasil dengan `id` kotak surat uji yang sudah Anda cocokkan melalui `GET /mailboxes`. Periksa `id`, `to`, `from`, `subject`, dan `received_at` pada objek yang sama dengan kode yang akan dipakai. Gunakan hasil pencarian ini, bukan menggabungkan metadata pesan terpisah dengan kode dari panggilan `/otp` sebelumnya.

Bandingkan metadata dengan catatan percobaan, termasuk alamat tujuan dan waktu mulai. Metadata membantu menilai kecocokan, tetapi tidak menjamin kode berasal dari permintaan terbaru. Jika hubungan pesan dengan percobaan masih ambigu, hentikan pemilihan otomatis daripada menebak kode.

Serahkan kode hanya ke percobaan yang sesuai. Aplikasi tujuan menentukan apakah kode diterima, sudah kedaluwarsa, atau tidak lagi berlaku. Jika kode belum ditemukan, ulangi pemeriksaan dengan jeda dan batas waktu keseluruhan. Tetapkan batas itu berdasarkan kebutuhan pengujian Anda, bukan dengan melonggarkan pencarian sampai kode lama ikut terambil.

## Kesalahan umum: mengapa OTP Hotmail tidak ditemukan atau ditolak?

Pisahkan masalah pemilihan pesan dari masalah koneksi. Koneksi yang masih bisa masuk ke Microsoft tidak berarti email tertentu sudah tersedia untuk dibaca.

| Gejala | Yang perlu diperiksa | Tindakan |
| --- | --- | --- |
| Kode berasal dari kotak surat lain | Pasangan `email` dan `id` pada daftar kotak surat | Cocokkan ulang sebelum memulai percobaan. |
| OTP tidak ditemukan | Nilai pengirim dan subjek | Bandingkan dengan email uji sebenarnya; koreksi penyaring yang keliru. |
| Email belum terlihat | Status koneksi dan lokasi pesan | Periksa `/status`, lalu `/placement` dan folder Junk. |
| Kode ditemukan tetapi ditolak | Waktu pesan dan percobaan yang sedang berjalan | Jangan gunakan ulang hasil percobaan sebelumnya; minta kode baru melalui aplikasi uji. |
| Koneksi Microsoft terputus | Hasil pemeriksaan masuk | Hubungkan kembali akun melalui OAuth sebelum mengulangi pengujian. |
| Sinkronisasi manual ditolak | Scope kunci API | Operasi sinkronisasi manual (`POST /mailboxes/{id}/sync`) membutuhkan izin `sync`, bukan hanya `read`. |

Untuk memeriksa apakah proses masuk ke Microsoft masih berfungsi:

```bash
curl --silent --show-error \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/status" \
  -H "Authorization: Bearer $MAILERA_API_KEY"
```

Untuk memeriksa pesan yang terlihat di Inbox, gunakan daftar pesan:

```bash
curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/messages" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'folder=inbox' \
  --data-urlencode 'from=auth@example.com'
```

Gunakan `GET /mailboxes/{id}/placement` untuk memeriksa penempatan Inbox atau Spam. Endpoint ini mendukung `from`, `subject`, dan `since_minutes`. Periksa juga folder Junk pada kotak surat yang sama; jangan hanya mencari di Inbox. Untuk membaca daftar pesannya, gunakan `/messages` dengan `folder=junk`.

Jika perlu, `POST /mailboxes/{id}/sync` meminta sinkronisasi manual dan membutuhkan izin `sync` tambahan. Jangan menambahkannya ke kunci pembaca rutin hanya untuk mengatasi penyaring pencarian yang salah.

Mailera menerima email Microsoft melalui Graph change notifications, dengan pemeriksaan latar belakang sebagai cadangan. Dukungan notifikasi pesan dijelaskan dalam [dokumentasi Microsoft tentang perubahan sumber daya Outlook](https://learn.microsoft.com/en-us/graph/outlook-change-notifications-overview). Tetap gunakan jeda pemeriksaan; batas API Mailera adalah 300 permintaan per menit per kunci.

## Bagaimana menjaga OTP dan akses kotak surat tetap aman?

Jangan simpan OTP, isi email sensitif, kunci API, atau token OAuth dalam log dan rekaman pengujian. Samarkan seluruh kode serta alamat pribadi pada tangkapan layar. Simpan hanya metadata yang diperlukan untuk menelusuri percobaan, dengan akses terbatas.

Pertahankan cakupan kunci pada grup pengujian dan izin `read`. Cabut kunci setelah tidak diperlukan; Mailera langsung menolak panggilan yang menggunakan kunci yang sudah dicabut. Saat meninjau integrasi Anda, lihat informasi keamanan produk di [halaman keamanan Mailera](https://mailera.app/id/security).

Jika agen AI menjalankan alur ini, perlakukan email masuk sebagai data tidak tepercaya, bukan instruksi. Jangan mengikuti perintah dalam isi email, termasuk perintah untuk membagikan kode atau mengubah tujuan pengiriman. Gunakan kunci dengan izin minimum dan minta konfirmasi sebelum agen mengirim pesan.

## Batas Mailera dalam alur OTP Hotmail

Mailera menghubungkan kotak surat yang sudah Anda miliki; Mailera tidak membuat alamat Hotmail baru. Pengambilan kode bukan verifikasi kode dan bukan jaminan bahwa kode masih berlaku.

Mailera juga tidak menjamin penerimaan email seketika atau penempatan di Inbox. Tindakan **Bukan spam** memindahkan pesan keluar dari Junk dan membutuhkan izin memindahkan pesan, tetapi keputusan penyaringan berikutnya tetap berada pada penyedia email. Memindahkan satu pesan tidak membuat penyedia otomatis memercayai pengirimnya.

**Lakukan ini dengan API** — Setiap tindakan dalam artikel ini tersedia melalui REST API, lengkap dengan contoh curl, API key, dan webhook. [Lihat dokumentasi API](https://mailera.app/id/docs)
