Get your API key
All integrations Email Infra

Microsoft 365 + MailKite

Microsoft 365 (Exchange Online) is the enterprise email standard. Use MailKite alongside M365 — MailKite for transactional email and inbound parsing, M365 for employee mailboxes.

What you need

Send email

Use MailKite SMTP for transactional email. Keep M365 for employee mailboxes.

smtp-config
# Use MailKite for transactional, M365 for employee mail
# Configure SMTP relay in M365 or use MailKite directly

# MailKite SMTP (simpler):
SMTP Host: smtp.mailkite.dev
SMTP Port: 587
SMTP Username: mailkite
SMTP Password: mk_live_...
From: noreply@yourdomain.com

# M365 SMTP AUTH (for reference):
# SMTP Host: smtp.office365.com
# Port: 587 (STARTTLS)
# Requires SMTP AUTH enabled per mailbox

Receive inbound email (optional)

Route specific addresses (support@, billing@) to MailKite for parsing. Keep employee mail in Exchange Online.

inbound-routing
# MailKite inbound webhook for M365 routing
# Forward specific addresses to MailKite for parsing
# Keep employee mail in Exchange Online

# Configure DNS MX to point at MailKite
# for addresses you want to parse (e.g., support@, billing@)

Test it

Send via MailKite SMTP or API.

terminal
# Quick test
echo "Test" | swaks --to test@example.com --from noreply@yourdomain.com \
--server smtp.mailkite.dev --port 587 \
--auth USER=mailkite --auth-password mk_live_...

Troubleshooting

  • M365 SMTP AUTH requires admin enablement per mailbox — a common friction point.
  • MailKite has no such restriction — one API key, all addresses.
  • Use DNS MX routing to split traffic: MailKite for support@, M365 for employee addresses.

See the SMTP relay docs for the full connection reference, or all integrations for other platforms.