はじめに
独自ドメインのメールアドレスを、無料で受信して、有料プランでSMTP送信とWebhook連携まで使いこなす方法です。
サーバーを契約せずに独自ドメインでメールだけ使いたい時に、参考になれば幸いです。開発者向けの機能(Webhook、API、SMTP送信)を中心に解説します。
この記事で解説する方法
- 国内発のKaiMailというメール転送サービスを使って、独自ドメインメールを受信
- Gmailなどの既存メールアドレスに転送して受信
- 有料プランでSMTP送信(送信元を
you@yourdomain.comにする) - Webhookでメールをプログラムで受信(開発者向け)
KaiMailとは
KaiMailは、独自ドメインのメールを転送できるメール転送サービスです。
通常、独自ドメインのメールアドレスを使うにはメールサーバーを用意する必要がありますが、KaiMailを使えばメールサーバーなしで運用できます。転送メールの到達性を高めるため、ARC署名とDKIM署名に対応しています。
主な特徴:
- 無料プランで1ドメイン、1メールボックス、月300通まで転送可能
- リアルタイムでメール転送ができる(数秒〜1分以内)
- 独自ドメインのメールを Gmail や Outlook で受信可能
- MXレコードを設定するだけで利用できる(メールサーバー不要)
- ARC署名・DKIM署名・SPFチェック対応
- 有料プランでWebhook配信、SMTP送信、HTTP API送信が利用可能
- 日本語UI、JPY料金設定対応
前提として
- ドメインはお名前.comまたはCloudflareなどで取得済み。DNS機能を使ってレコードを設定します
- KaiMailは無料プラン(Basic)を利用して受信設定を行います
- SMTP送信やWebhookを使う場合は有料プラン(Plus以上)へのアップグレードが必要です
KaiMailの設定手順
1. KaiMailに登録
- KaiMailの公式サイトにアクセス
- 「無料で始める」または「アカウント作成」をクリック
- メールアドレスとパスワードを入力してアカウントを作成
- 確認メールが届くので、リンクをクリックして本登録を完了
2. ドメインを追加
- ダッシュボードの「ルート」→「ドメインを追加」をクリック
- ドメイン名(例:
example.com)を入力 - ドメインの所有権確認方法を選択(DNS TXTレコードまたはメール認証)
ドメインを追加すると、「ルート」の画面から各ドメインの設定関連にアクセスすることができます。
3. DNSレコードを設定する
ドメインのDNS管理画面(お名前.com、Cloudflare、Route 53など)で、以下のレコードを追加します。
MXレコード
KaiMailのメールサーバーにメールを届けるための設定です。
| ホスト名 | 種別 | 値 | 優先度 |
|---|---|---|---|
| @(または空欄) | MX | mail.kaimail.net |
10 |
TXTレコード(SPF設定)
送信元ドメイン認証のためのSPFレコードです。
| ホスト名 | 種別 | 値 |
|---|---|---|
| @(または空欄) | TXT | "v=spf1 include:spf.kaimail.net ~all" |
TXTレコード(DKIM設定)
KaiMailのダッシュボードでDKIMキーを生成し、表示された公開鍵をTXTレコードとして登録します。
| ホスト名 | 種別 | 値 |
|---|---|---|
selector1._domainkey(ダッシュボードに表示されるホスト名) |
TXT | (ダッシュボードに表示される公開鍵) |
注意: DKIMの公開鍵が長すぎて1つのTXTレコードに入らない場合、Route 53などの一部のDNSプロバイダーでは対応方法が異なります。詳細はKaiMailのドキュメントを参照してください。
DNS設定が反映されるまで数分〜数時間かかることがあります。KaiMailのダッシュボードでドメインのステータスが「アクティブ」になれば設定完了です。
注意: DKIMの公開鍵が長すぎて1つのTXTレコードに入らない場合、Route 53などの一部のDNSプロバイダーでは対応方法が異なります。詳細はKaiMailのドキュメントを参照してください。
DNS設定が反映されるまで数分〜数時間かかることがあります。KaiMailのダッシュボードでドメインのステータスが「アクティブ」になれば設定完了です。
4. メールボックスを作成
- ダッシュボードでドメインを選択
- 「メールボックス」→「メールボックスを追加」をクリック
- メールアドレス(例:
hello@example.com)と転送先メールアドレス(例:yourname@gmail.com)を入力 - 保存
5. 受信テスト
別のメールアドレスから、作成したメールボックス(例: hello@example.com)宛にテストメールを送信します。転送先のGmailに数秒〜1分以内に届けば成功です。
メールの詳細のところに、mailed-by: mail.kaimail.net が表示されたら KaiMail 経由で送信された証です。また signed-by のところに、発信元の名称入っていたらメールの署名が改ざんされてないことを証明になります。
SMTPで独自ドメインから送信する
Basic(無料)プランでは受信と転送のみです。独自ドメインからメールを送信するには、Plus以上の有料プランにアップグレードする必要があります。
プランのアップグレード
- ダッシュボードの「プラン管理」→「アップグレード」をクリック
- Plus(月¥550)または上位プランを選択
- Stripeの画面が表示されたらの支払い情報を入力してアップグレード
SMTP設定
アップグレード後、SMTPパスワードを取得します。アカウントをアップグレードすると、SMTPを利用するためのパスワードは自動で生成されます。
- ダッシュボードのプロフィールのところを開く(上の部分にメールアドレスがあるところ)
- ページの下にある「SMTP認証情報」のパスワード部分をコピー
- ユーザー名は、登録メールアドレスになります
SMTPサーバーの設定値は以下の通りです。
| 項目 | 値 |
|---|---|
| SMTPサーバー | mail.kaimail.net |
| ポート | 587(STARTTLS) |
| ユーザー名 | KaiMailアカウントのメールアドレス |
| パスワード | 生成されたSMTPパスワード |
| 認証方式 | 平文ログイン(STARTTLSで暗号化) |
メールクライアント(Thunderbird、Apple Mailなど)またはアプリケーションから、この設定で送信すると、送信元が you@example.com になります。
Gmailから送信する設定(オプション)
GmailのWebインターフェースから独自ドメインで送信したい場合、以下の手順で設定できます。
- Gmailの「設定」→「アカウントとインポート」を開く
- 「別のメールアドレスを追加」をクリック
- メールアドレス(例:
hello@example.com)を入力 - SMTPサーバー:
mail.kaimail.net - ユーザー名: KaiMailアカウントのメールアドレス
- パスワード: SMTPパスワード
- ポート: 587(TLS)
- 確認メールのURLをクリックして認証
他社の説明ですが、アイテスプラスが公開してる独自ドメインで送受信Gmail設定手順も役に立つかもしれません。SMTPサーバー、ユーザー名、パスワードとポートは相違があるので、注意してください。
Webhookでメールをプログラムで受信する(開発者向け)
KaiMailの特徴的な機能の一つが、受信メールをHTTP Webhookとしてアプリケーションに配信できる点です。Plusプランから利用可能です。
Webhookの仕組み
- 誰かが
hello@example.comにメールを送信 - KaiMailのMXサーバーがメールを受信・処理
- 指定したHTTPSエンドポイントにJSON形式のPOSTリクエストが届く
メールサーバーの運用やSMTPの知識なしに、HTTPエンドポイントひとつでメール受信を実現できます。
Flaskでの受信例
最小限のWebhookレシーバーは以下のようになります。
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def receive_webhook():
payload = request.get_json()
subject = payload.get("headers", {}).get("Subject", "(no subject)")
sender = payload.get("headers", {}).get("From", "(unknown)")
body = payload.get("body_text", "")
print(f"From: {sender}")
print(f"Subject: {subject}")
print(f"Body: {body[:200]}")
return jsonify({"status": "ok"}), 200
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
本番で使う場合は、必ずX-KAI-Webhook-Signatureヘッダーによる署名検証を行ってください。詳細な実装方法や署名検証のコードは、KaiMailのWebhook連携ガイドを参照してください。
Webhookペイロードの構造は以下のようになっています。
{
"version": "1.0",
"timestamp": "2025-01-31T10:30:00Z",
"headers": {
"From": "alice@example.com",
"To": "hello@yourdomain.com",
"Subject": "Quick question",
"Date": "Fri, 31 Jan 2025 10:30:00 +0000",
"Message-ID": "<abc123@example.com>"
},
"body_text": "Hi,\n\nDo you offer annual discounts?\n\nThanks,\nAlice",
"body_html": null,
"attachments": [],
"envelope": {
"sender": "alice@example.com",
"recipient": "hello@yourdomain.com"
},
"account": {
"email": "you@example.com",
"domain": "yourdomain.com",
"mailbox": "hello@yourdomain.com"
},
"metadata": {
"authentication_results": {}
}
}
開発中のローカルテストにはngrokを使ったトンネリングが便利です。詳細はPythonでKaiMailのWebhookをテストする方法に手順をまとめています。
HTTP APIでメールを送信する(開発者向け)
SMTPハンドシェイクがタイムアウトするサーバーレス環境や、ポート587がブロックされているホスティング環境では、HTTP API経由での送信が有効です。
curl -X POST https://kaimail.net/api/v1/email/send \
-u "you@example.com:YOUR_SMTP_PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"from": "Support <hello@yourdomain.com>",
"to": ["customer@example.net"],
"subject": "ご登録ありがとうございます",
"text": "こんにちは。ご登録ありがとうございます。"
}'
レスポンスに含まれる tracking_id で、送信後のステータス(queued、sending、sent、failed)を追跡できます。詳細はHTTP Sending APIドキュメントを参照してください。
最後にKaiMailの安全性について
メール転送サービスを選ぶ上で、セキュリティとプライバシーは重要な判断材料です。KaiMailの取り組みをまとめます。
- TLS暗号化に対応: メールの送受信はTLSで暗号化されています
- メールの保存期間: 転送処理のために必要な間のみメールを保持し、転送後は一定期間で自動削除されます
- GDPR対応: EU一般データ保護規則に準拠した運用を行っています
- 送信ドメイン認証: SPF、DKIM、DMARCに対応しており、なりすましメールを防ぎます
- ARC署名: 転送メールにARC署名を付与し、GmailやYahooなどでの配信到達性を守ります
まとめ
- KaiMailを使えば無料で独自ドメインのメールを受信できる
- MXレコードとSPF/DKIMレコードを設定するだけで運用開始
- Gmailなどの既存メールアドレスに転送して使える
- 有料のPlusプランからSMTP送信とWebhook連携が利用可能
- HTTP APIもあり、サーバーレス環境からのメール送信に便利
- ARC署名対応で、転送メールの到達性が高い
無料で独自ドメインのメールを運用するなら、KaiMailは開発者にとって特に価値のある選択肢です。Webhook連携やHTTP APIが必要な場合、他の転送サービスと比較してもコスパが良いプラン設計になっています。
詳細なドキュメントや比較情報は以下を参照してください。










