Untuk domain kustom di Microsoft 365 (Exchange Online/Outlook), autentikasi email membutuhkan tiga hal: SPF v=spf1 include:spf.protection.outlook.com -all di host @, dua record CNAME DKIM (selector1._domainkey dan selector2._domainkey) yang nilainya diambil dari Microsoft Defender portal lalu diaktifkan di sana, serta record TXT DMARC di _dmarc. Microsoft tidak menyediakan pengaturan SPF dan DMARC untuk domain kustom di portalnya; semuanya dibuat di penyedia DNS Anda.
Langkah-langkah di bawah mengikuti dokumentasi Microsoft Learn (Microsoft Defender for Office 365) terbaru, termasuk format CNAME DKIM baru yang berlaku untuk domain kustom yang ditambahkan sejak Mei 2025. Bila Anda memakai Google Workspace, panduannya ada di setting SPF, DKIM & DMARC Google Workspace.
Gambaran: apa yang sudah otomatis, apa yang belum
| Domain | SPF | DKIM | DMARC |
|---|---|---|---|
namaanda.onmicrosoft.com (domain awal) | Sudah diatur Microsoft | Otomatis ditandatangani | Harus Anda tambahkan di Microsoft 365 admin center |
contoh.com (domain kustom) | Anda buat di DNS | Anda buat 2 CNAME + aktifkan | Anda buat di DNS |
Satu hal yang sering terlewat: sebelum DKIM domain kustom diaktifkan, email dari anda@contoh.com ditandatangani dengan domain *.onmicrosoft.com. Tanda tangannya valid, tetapi tidak selaras dengan contoh.com, sehingga tidak membantu DMARC. Konsep alignment ini dijelaskan di apa itu DMARC.
Langkah 1: SPF untuk Microsoft 365
Proses penambahan domain di Microsoft 365 biasanya sudah meminta Anda membuat record SPF. Periksa kembali nilainya:
Type : TXT
Host : @
Value: v=spf1 include:spf.protection.outlook.com -all
TTL : 3600
Microsoft merekomendasikan -all (hard fail), dengan alasan DKIM dan DMARC juga dipasang sehingga DMARC yang menentukan nasib email gagal. Microsoft juga menyarankan TTL minimal 3600 detik.
Untuk cloud khusus, nilai include-nya berbeda:
# Microsoft 365 GCC High dan DoD
v=spf1 include:spf.protection.office365.us -all
# Microsoft 365 yang dioperasikan 21Vianet (Tiongkok)
v=spf1 include:spf.protection.partner.outlook.cn -all
Ada server atau layanan lain?
Tetap satu record, gabungkan semua sumber:
# Microsoft 365 + server aplikasi/on-premises dengan IP tetap
v=spf1 ip4:203.0.113.10 include:spf.protection.outlook.com -all
Untuk layanan email massal yang tidak Anda kendalikan, Microsoft menyarankan memakai subdomain (misalnya marketing.contoh.com) dengan SPF sendiri, agar reputasi domain utama tidak terdampak dan anggaran 10 DNS lookup tidak habis. Satu catatan dari Microsoft: jangan "meratakan" (flatten) include:spf.protection.outlook.com menjadi daftar IP, karena IP Microsoft berubah dinamis. Validasi hasilnya dengan SPF Checker; jika lookup melewati 10, lihat solusi SPF PermError.
Langkah 2: DKIM dengan selector1 dan selector2
Microsoft 365 membuat dua pasangan kunci per domain. Hanya satu selector yang aktif; yang lain disiapkan untuk rotasi berikutnya. Karena itu Anda harus membuat kedua CNAME, walaupun hanya satu yang dipakai saat ini.
Format CNAME
Host-nya selalu sama untuk semua organisasi: selector1._domainkey dan selector2._domainkey. Tujuannya bergantung pada kapan domain ditambahkan:
# Format baru (domain kustom yang ditambahkan sejak Mei 2025)
selector1._domainkey CNAME selector1-contoh-com._domainkey.namaanda.n-v1.dkim.mail.microsoft
selector2._domainkey CNAME selector2-contoh-com._domainkey.namaanda.n-v1.dkim.mail.microsoft
# Format lama (domain kustom yang lebih lama)
selector1._domainkey CNAME selector1-contoh-com._domainkey.namaanda.onmicrosoft.com
selector2._domainkey CNAME selector2-contoh-com._domainkey.namaanda.onmicrosoft.com
Penjelasan bagiannya: contoh-com adalah domain kustom dengan titik diganti tanda hubung, namaanda adalah awalan domain .onmicrosoft.com Anda, dan huruf sebelum -v1 (misalnya n atau r) adalah karakter partisi yang ditetapkan Microsoft dan tidak bisa ditebak. Contoh di atas hanya ilustrasi. Selalu salin nilai persis dari portal atau PowerShell; format lama dan baru tidak bisa dicampur untuk selector yang sama.
2a. Ambil nilai CNAME dari Defender portal
- Buka Microsoft Defender portal di
https://security.microsoft.com. - Masuk ke Email & collaboration โ Policies & rules โ Threat policies โ Email authentication settings (atau langsung
https://security.microsoft.com/authentication). - Pilih tab DKIM. Domain kustom yang belum punya kunci berstatus
NoDKIMKeysdengan toggle Disabled. - Geser toggle domain tersebut ke Enabled. Akan muncul dialog Client error yang berisi nilai CNAME; klik OK. Ini perilaku normal.
- Status berubah menjadi
CnameMissing. Klik baris domain (bukan toggle-nya) untuk membuka panel detail, lalu salin nilai di bagian Publish CNAMEs.
2b. Atau ambil lewat PowerShell
Connect-ExchangeOnline
# Tampilkan nilai CNAME untuk domain
Get-DkimSigningConfig -Identity contoh.com | Format-List Name,Enabled,Status,Selector1CNAME,Selector2CNAME
# Jika domain belum muncul, buat konfigurasinya dulu (2048 bit)
New-DkimSigningConfig -DomainName contoh.com -Enabled $false -KeySize 2048
Perlu dicatat, parameter -KeySize pada New-DkimSigningConfig default-nya 1024 menurut dokumentasi Microsoft; tambahkan -KeySize 2048 bila ingin kunci yang lebih kuat sejak awal.
2c. Buat dua CNAME di DNS
Type : CNAME
Host : selector1._domainkey
Value: (Selector1CNAME dari portal)
TTL : 3600
Type : CNAME
Host : selector2._domainkey
Value: (Selector2CNAME dari portal)
TTL : 3600
Perhatikan:
- Isi kolom host hanya
selector1._domainkey. Beberapa panel (Microsoft mencontohkan GoDaddy) otomatis menambahkan nama domain, sehingga mengetik nama lengkap menghasilkan host ganda. - Jenis record harus CNAME, bukan TXT berisi kunci. Microsoft mengelola dan merotasi kuncinya lewat CNAME tersebut.
- Di Cloudflare, set record ke DNS only (awan abu-abu).
Setelah tersebar, cek dengan dig +short CNAME selector1._domainkey.contoh.com atau DKIM Checker dengan selector selector1.
2d. Aktifkan penandatanganan
Kembali ke panel detail domain di tab DKIM, lalu aktifkan Sign messages for this domain with DKIM signatures. Bila CNAME terdeteksi, status berubah menjadi Signing DKIM signatures for this domain dan tombol Rotate DKIM keys menjadi aktif. Microsoft menyebut deteksi CNAME bisa butuh beberapa menit atau lebih. Lewat PowerShell:
Set-DkimSigningConfig -Identity contoh.com -Enabled $true
Rotasi kunci dan upgrade ke 2048 bit
Rotate-DkimSigningConfig -Identity contoh.com -KeySize 2048
Rotasi tidak instan. Menurut Microsoft, butuh empat hari (96 jam) sebelum kunci baru mulai menandatangani, dan selama itu Anda tidak bisa memulai rotasi lain. Perubahan ukuran kunci berlaku pada selector yang menjadi aktif berikutnya.
Langkah 3: DMARC untuk domain kustom
Microsoft menyarankan SPF dan DKIM sudah beres untuk semua domain dan subdomain pengirim sebelum DMARC dipasang. Mulailah dari pemantauan:
Type : TXT
Host : _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc@contoh.com
TTL : 3600
Rencana bertahap ala Microsoft:
p=nonedan pantau laporan agregat.p=quarantine, naikkanpctbertahap (Microsoft mencontohkan 10, 25, 50, 75, 100).p=reject, juga bisa bertahap denganpct.- Mulai dari subdomain bervolume rendah, sisakan domain induk terakhir.
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@contoh.com
v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@contoh.com
Gunakan DMARC Generator untuk menyusun record dan DMARC Checker untuk memvalidasinya. Satu konsekuensi yang disebut Microsoft: email keluar dari Microsoft 365 yang gagal DMARC di penerima, untuk domain dengan kebijakan quarantine atau reject, dikirim lewat high-risk delivery pool. Ini alasan tambahan untuk memastikan alignment beres sebelum menaikkan kebijakan.
Berlangganan gratis. Artikel & tutorial coding terbaru langsung ke email kamu. Tanpa spam.
DMARC untuk domain onmicrosoft.com
Domain *.onmicrosoft.com tidak bisa diatur di DNS Anda. Tambahkan lewat Microsoft 365 admin center:
- Buka
https://admin.microsoft.comโ Show all โ Settings โ Domains. - Klik domain
*.onmicrosoft.com, buka tab DNS records, pilih Add record. - Type TXT, TXT name
_dmarc, TXT valuev=DMARC1; p=rejectbila domain itu tidak dipakai mengirim email. TTL 1 jam, lalu Save.
Domain parkir
Untuk domain yang tidak pernah mengirim email, Microsoft menyarankan v=spf1 -all dan v=DMARC1; p=reject;. CNAME DKIM tidak disarankan untuk domain parkir.
Langkah 4: Verifikasi
Kirim email dari Outlook ke akun Gmail atau Outlook.com, lalu buka header. Hasil yang diharapkan:
Authentication-Results: spf=pass (sender IP is 40.107.x.x)
smtp.mailfrom=contoh.com; dkim=pass (signature was verified)
header.d=contoh.com; dmarc=pass action=none header.from=contoh.com;
Pastikan header.d adalah domain Anda, bukan onmicrosoft.com, dan selector di header DKIM-Signature berbentuk s=selector1-contoh-com atau selector2-....
Layanan pengirim selain Microsoft 365
Konfigurasi di Defender portal hanya berlaku untuk email yang keluar lewat Exchange Online. Bila ada layanan lain yang mengirim atas nama domain Anda, misalnya platform newsletter, aplikasi web yang memakai penyedia SMTP transaksional, atau sistem tiket, masing-masing perlu diatur sendiri. Aktifkan fitur custom DKIM atau domain authentication di layanan itu agar tanda tangannya memakai d= domain Anda, dan bila tersedia, atur Return-Path ke subdomain milik Anda supaya SPF juga selaras. Selector milik layanan tersebut tidak akan bentrok dengan selector1 dan selector2 Microsoft.
Laporan DMARC tahap p=none adalah cara paling andal untuk menemukan layanan yang terlupa: setiap IP yang muncul dengan volume berarti tetapi gagal alignment adalah kandidat untuk diperiksa sebelum Anda menaikkan kebijakan.
Catatan tentang laporan DMARC
Microsoft 365 mengirim laporan agregat (rua) ke domain lain selama MX domain penerima mengarah langsung ke Microsoft 365, tetapi tidak mengirim laporan kegagalan (ruf). Jadi jangan heran bila ruf Anda sepi dari Microsoft.
Kesalahan umum di Microsoft 365
- Hanya membuat selector1; rotasi kunci nantinya gagal.
- Membuat TXT berisi kunci alih-alih CNAME, status tetap
CnameMissing. - Host ganda akibat panel DNS menambahkan domain otomatis.
- Menyalin contoh dari artikel, bukan nilai asli tenant Anda (karakter partisi berbeda).
- Lupa menyalakan toggle setelah CNAME dibuat, sehingga email tetap ditandatangani
onmicrosoft.com. - Lupa DMARC di domain onmicrosoft.com yang tidak dipakai.
Checklist Microsoft 365
- SPF satu record dengan
include:spf.protection.outlook.com, diakhiri-all. - CNAME
selector1._domainkeydanselector2._domainkeysesuai nilai portal. - DKIM toggle aktif, status Signing; pertimbangkan rotasi ke 2048 bit.
- DMARC
p=none+rua, naik bertahap ke reject. - DMARC untuk
*.onmicrosoft.comdan domain parkir. - Header tes menunjukkan SPF, DKIM (domain sendiri), dan DMARC pass.
FAQ
Kenapa muncul "Client error" saat mengaktifkan DKIM?
Itu perilaku normal ketika CNAME belum ada. Dialog tersebut justru berisi nilai CNAME yang harus Anda buat. Klik OK, buat record-nya, lalu aktifkan lagi.
Apakah selector2 wajib dibuat?
Ya. Microsoft mewajibkan kedua CNAME karena selector2 dipakai saat rotasi kunci. Tanpanya rotasi tidak bisa dilakukan.
Berapa lama sampai DKIM aktif?
Deteksi CNAME biasanya beberapa menit, tetapi bisa lebih lama tergantung propagasi DNS. Rotasi kunci butuh empat hari.
Pakai -all atau ~all untuk Microsoft 365?
Microsoft merekomendasikan -all, dengan catatan DKIM dan DMARC juga dikonfigurasi. Bila Anda belum yakin semua pengirim terdata, ~all sementara masih bisa dipakai.
Apakah domain onmicrosoft.com perlu SPF dan DKIM?
Tidak; keduanya sudah diatur Microsoft. Yang perlu Anda tambahkan hanya DMARC lewat admin center.