---
title: "Cara Mengambil Kode OTP dari Email Outlook melalui API"
description: "Baca OTP dari kotak surat Outlook milik sendiri dengan OAuth dan API Mailera. Pelajari parameter permintaan, izin read, dan diagnosis email hilang."
url: https://mailera.app/id/blog/cara-mengambil-kode-otp-outlook-api
published: 2026-10-25
updated: 2026-10-25
---

# Cara Mengambil Kode OTP dari Email Outlook melalui API

Hubungkan kotak surat uji Outlook dengan OAuth, lalu baca kode verifikasi melalui API Mailera. Pisahkan sesi pengujian agar otomatisasi Anda tidak memakai kode dari pengujian sebelumnya.

Hubungkan kotak surat Outlook milik sendiri ke Mailera melalui OAuth, buat kunci API berizin `read`, lalu panggil `GET /mailboxes/{id}/otp`. Parameter yang didukung mencakup `from`, `subject`, dan `since_minutes`. Endpoint ini mengambil kode terbaru dari email yang sudah diterima. Gunakan kotak surat uji sendiri dan pisahkan sesi pengujian agar kode tidak tertukar.

## Apa yang perlu disiapkan sebelum membaca OTP Outlook?

Siapkan kotak surat Outlook.com atau Microsoft 365 milik sendiri, aplikasi yang berwenang Anda uji, serta akses Mailera. Gunakan kotak surat khusus pengujian supaya email pribadi tidak ikut masuk ke alur otomatisasi.

OTP dalam panduan ini adalah kode verifikasi yang dikirim aplikasi melalui email. API mengambil kode tersebut dari pesan yang sudah diterima. Jangan tertukar dengan API yang berada di sisi pengiriman.

| Kebutuhan | Arah alur | Rujukan |
| --- | --- | --- |
| Membaca OTP email Outlook | Kotak surat → aplikasi pengujian | `GET /mailboxes/{id}/otp` di Mailera |
| Menangani pengiriman OTP Microsoft Entra | Microsoft Entra → REST API milik pengelola ekstensi | Peristiwa `emailOtpSend` |

Dalam [referensi resmi peristiwa emailOtpSend](https://learn.microsoft.com/en-us/entra/identity-platform/custom-extension-email-otp-send-data), Microsoft menjelaskan bahwa Entra mengirim kode sekali pakai ke REST API yang Anda miliki. Itu berbeda dari mengambil pesan yang sudah tiba di Outlook.

[Mailera menghubungkan kotak surat yang sudah Anda gunakan](https://mailera.app/id/product). Untuk Microsoft, koneksinya memakai OAuth melalui Microsoft Graph, bukan sandi aplikasi (app password). [Halaman koneksi Outlook dan Microsoft 365](https://mailera.app/id/providers/microsoft) menjelaskan jalur penyedia ini; untuk konsep lintas penyedia, lihat [panduan membaca OTP dari kotak surat sendiri](https://mailera.app/id/blog/ambil-kode-otp-email-api).

## Bagaimana menghubungkan Outlook dan menyiapkan kunci API?

Ada dua lapisan otorisasi. Persetujuan OAuth Microsoft memberi akses untuk koneksi kotak surat. Kunci API Mailera memberi aplikasi pengujian akses ke endpoint Mailera. Keduanya bukan kredensial yang bisa saling menggantikan.

Microsoft menjelaskan proses login dan persetujuan tersebut dalam [panduan akses Microsoft Graph atas nama pengguna](https://learn.microsoft.com/en-us/graph/auth-v2-user). Sementara itu, izin `read` di bawah ini adalah izin kunci Mailera, bukan nama izin Microsoft Graph.

1. Buka **Kotak surat** → **Tambah kotak surat**. Penambahan kotak surat memerlukan peran Admin atau Leader.
2. Pilih tab **Masuk dengan Microsoft**, lalu selesaikan login dan persetujuan OAuth di Microsoft. Pastikan Anda memilih akun uji, bukan akun kerja lain yang kebetulan sedang terbuka.
3. Buka **Pengaturan**, masuk ke tab API key, lalu pilih **Buat API key**. Isi **Nama deskriptif**, batasi **Cakupan kotak surat** ke grup pengujian, dan pilih izin "Read" (`read`). Atur **Masa berlaku** sesuai kebutuhan pengujian.
4. Saat muncul **API key dibuat — salin sekarang**, simpan kunci ke penyimpanan rahasia sisi server. Nilai kunci hanya ditampilkan sekali. Sediakan nilainya sebagai variabel lingkungan `MAILERA_API_KEY`, bukan di kode peramban.

![Tab Masuk dengan Microsoft pada halaman Tambah kotak surat Mailera.](https://mailera.app/media/cdbd69a1f0ff2a78/create-a-fastmail-app-password-for-mailera-and-your-ai-en-1200.jpg)
_Hubungkan Outlook melalui OAuth pada tab Masuk dengan Microsoft._

Jika Anda sedang mengganti koneksi berbasis sandi, baca [mengatasi sandi aplikasi Outlook yang gagal dengan OAuth](https://mailera.app/id/blog/kata-sandi-aplikasi-outlook-gagal-oauth). Untuk memahami perbedaan antarpenyedia, [panduan sandi aplikasi untuk kotak surat agen](https://mailera.app/id/blog/sandi-aplikasi-oauth-email-agen-ai) membahas konteks yang lebih luas; jangan menerapkan langkah sandi aplikasi penyedia lain ke Outlook.

![Pengaturan kunci API dengan cakupan grup pengujian dan izin baca saja.](https://mailera.app/media/3c1d3f1b0de0247c/cara-mengambil-kode-otp-dari-email-outlook-melalui-api-otp-id-1200.jpg)
_Batasi kunci pembaca OTP ke grup pengujian dan izin read._

Selanjutnya, ambil daftar kotak surat yang dapat diakses kunci tersebut:

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

Cocokkan `email` dan `provider` pada objek di dalam `data`, lalu simpan `id` kotak surat uji sebagai variabel lingkungan `MAILBOX_ID`. Jangan otomatis memilih objek pertama: kunci Anda mungkin memiliki akses ke lebih dari satu kotak surat.

Endpoint daftar kotak surat dan endpoint OTP sama-sama memerlukan `read`. [Halaman pengembang Mailera](https://mailera.app/id/developers) menjelaskan pilihan integrasi, sedangkan [dokumentasi API Mailera](https://mailera.app/id/docs) menjadi rujukan endpoint saat Anda menulis klien aplikasi.

## Bagaimana meminta kode OTP terbaru untuk pengujian?

Lanjutkan setelah kotak surat yang benar terhubung dan kedua variabel lingkungan tersedia di proses pengujian.

5. Catat waktu mulai sesi pengujian di aplikasi Anda.
6. Picu satu email verifikasi dari aplikasi yang diuji ke kotak surat Outlook tersebut.
7. Panggil endpoint OTP dengan parameter `from`, `subject`, dan `since_minutes` seperti pada contoh berikut.
8. Gunakan kode yang ditemukan hanya dalam sesi pengujian yang sesuai, lalu hentikan pengambilan setelah alur selesai.

Contoh berikut memakai alamat pengirim fiktif dan subjek contoh. Ganti keduanya dengan pengirim serta subjek aplikasi uji Anda sebelum menjalankannya. Nilai `5` adalah nilai `since_minutes` yang digunakan dalam contoh.

```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=verifikasi@example.com' \
  --data-urlencode 'subject=Verifikasi aplikasi uji' \
  --data-urlencode 'since_minutes=5'
```

Endpoint ini mendukung `id` pada path serta parameter kueri `from`, `subject`, dan `since_minutes`. Berikut nilai yang dipakai dalam contoh:

| Parameter | Nilai dalam contoh |
| --- | --- |
| `id` pada path | `$MAILBOX_ID` |
| `from` | `verifikasi@example.com` |
| `subject` | `Verifikasi aplikasi uji` |
| `since_minutes` | `5` |

Mulailah dengan nilai pengirim dan subjek dari pesan uji yang Anda kenali. Jangan memasukkan pola regex atau wildcard hanya karena parameter tersebut berupa teks.

![Alur email verifikasi dari aplikasi uji ke Outlook, melalui Mailera, lalu kembali ke aplikasi untuk validasi.](https://mailera.app/media/eab02909b3942943/cara-mengambil-kode-otp-dari-email-outlook-melalui-api-id-1200.jpg)
_OAuth mengotorisasi koneksi kotak surat; kunci API read mengotorisasi pengambilan kode._

**Kode terbaru belum tentu milik sesi saat ini.** Jika Anda menjalankan beberapa pengujian bersamaan, gunakan kotak surat uji yang terpisah atau jalankan pengujian secara berurutan pada kotak surat yang sama.

Saat perlu menelusuri asal kode, periksa metadata pesan melalui `GET /mailboxes/{id}/messages`. Respons daftar pesan menyediakan `from.address`, `subject`, dan `received_at`. Bandingkan dengan pengirim yang diharapkan serta waktu mulai pengujian, bukan hanya dengan keberadaan sebuah kode.

Jika kode belum tersedia, atur pengulangan permintaan di aplikasi dengan jeda, tenggat, dan kondisi berhenti. Hentikan ketika kode yang sesuai sudah dipakai atau tenggat pengujian tercapai. Jangan membuat pengulangan tanpa jeda.

Mailera menerima email Microsoft melalui Graph change notifications, dengan pemeriksaan latar belakang berkala sebagai cadangan. Microsoft mendokumentasikan dukungan langganan perubahan pesan dalam [panduan notifikasi perubahan Outlook](https://learn.microsoft.com/en-us/graph/outlook-change-notifications-overview). Mekanisme ini tidak menjamin email selalu tersedia pada permintaan pertama.

## Kesalahan umum: mengapa OTP tidak ditemukan atau tidak cocok?

Pisahkan masalah akses, penerimaan pesan, dan pemilihan kode. Mengubah parameter permintaan tidak akan memperbaiki koneksi kotak surat yang terputus; menghubungkan ulang akun juga tidak menyelesaikan kode dari sesi yang salah.

| Gejala | Yang diperiksa | Tindakan |
| --- | --- | --- |
| Kotak surat uji tidak terlihat | Grup pada cakupan kunci dan hasil `/mailboxes` | Pilih kunci dengan akses ke grup yang benar |
| Permintaan tidak dapat membaca data | Izin `read` dan nilai `MAILBOX_ID` | Perbaiki izin atau ID sebelum mencoba lagi |
| Pesan terlihat, tetapi OTP tidak ditemukan | Nilai `from`, `subject`, dan `since_minutes` yang dikirim | Cocokkan pengirim dan subjek dengan pesan; ubah satu parameter setiap kali |
| Pesan baru tidak muncul | Kondisi login Microsoft | Periksa `/status`, lalu pulihkan koneksi jika diperlukan |
| Kode ditemukan, tetapi sesi uji tidak cocok | Waktu pesan dan pengujian lain yang berjalan | Pisahkan sesi dan jangan gunakan kode lama |
| Sinkronisasi manual tidak diizinkan | Izin `sync` | Gunakan kunci operasional dengan izin tambahan tersebut |

Untuk memeriksa apakah login Microsoft masih berfungsi, gunakan `GET /mailboxes/{id}/status`. Pemeriksaan Microsoft dilakukan langsung terhadap kondisi login kotak surat.

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

Untuk melihat pesan di Inbox, gunakan endpoint 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'
```

Periksa `from.address`, `subject`, dan `received_at` pada pesan yang relevan. Jika perlu membaca isinya, ambil `id` pesan dan gunakan `GET /mailboxes/{id}/messages/{msgId}`. Jangan menyalin isi respons yang mengandung OTP ke log bersama.

Periksa juga Junk, bukan hanya Inbox. Anda dapat mengganti nilai `folder` menjadi `junk`, atau memakai `GET /mailboxes/{id}/placement` dengan parameter `from`, `subject`, dan `since_minutes` untuk memeriksa penempatan pesan. Pesan yang berada di Junk saja tidak berarti ekstraksi OTP gagal.

Jika perlu memicu sinkronisasi manual, endpointnya adalah `POST /mailboxes/{id}/sync`. Endpoint itu memerlukan izin `sync`; kunci dengan `read` saja tidak cukup. Sebaiknya pisahkan kunci operasional ini dari kunci pembaca OTP agar aplikasi uji tidak mendapat izin tambahan tanpa kebutuhan.

## Bagaimana menjaga keamanan kode dan akses kotak surat?

Batasi alur ini pada kotak surat milik sendiri dan aplikasi yang memang berwenang Anda uji. Jangan menggunakannya untuk membaca kode akun orang lain.

Berikan izin minimum. Pembaca OTP tidak memerlukan `send` atau `manage`. Batasi cakupan ke grup pengujian, tetapkan masa berlaku kunci, lalu cabut kunci setelah selesai. Kunci Mailera dapat dicabut kapan saja; panggilan menggunakan kunci itu kemudian ditolak.

Samarkan alamat, isi email, kode OTP, token OAuth, dan kunci API pada tangkapan layar maupun catatan pengujian. Catat hasil pemeriksaan tanpa menyimpan kode mentah. Gunakan [halaman keamanan Mailera](https://mailera.app/id/security) sebagai rujukan saat meninjau akses integrasi bersama tim.

Jika hasilnya dibaca agen AI, perlakukan email masuk sebagai **data tidak tepercaya, bukan perintah**. Abaikan instruksi dalam badan email yang meminta agen membuka rahasia, mengganti aturan, atau mengirim informasi. Minta konfirmasi sebelum pengiriman pesan atau tindakan sensitif lainnya.

## Apa batasan Mailera dalam alur OTP Outlook?

Mailera menghubungkan kotak surat yang sudah ada; Mailera tidak membuat kotak surat atau alamat email baru. Endpoint OTP mengambil kode terbaru dari email yang sudah diterima.

Mailera dapat memindahkan pesan keluar dari Junk, tetapi tidak dapat membuat penyedia memercayai pengirim atau menjamin penempatan Inbox.

Mailera menggunakan OAuth dan Microsoft Graph untuk koneksi Microsoft, tetapi bukan mitra resmi Microsoft.

**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)
