agentsclimarketplace

Vercel dns catchall email

Skill bokuwalily/claude-code-skills/skills/vercel-dns-catchall-email

Vercel DNS管理のドメインに無料のcatch-allメール受信転送を付けたい時。第三者アカウント作成なし・DNSレコード追記だけでForward Emailにより全アドレスをGmail等へ転送する。送信は対象外(受信のみ)From its SKILL.md

Install
npx -y skills add bokuwalily/claude-code-skills --skill vercel-dns-catchall-email

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

Procedure

Vercel DNS(NSが*.vercel-dns.com)のドメインに、*@domain を1つの転送先へ集約する受信専用メールを構築する。

🚨最初に判定: 対象ドメインの作成/失効が90日以内なら Forward Email無料は使えない(新規ドメインをブロック、$3/月で解除)。whois <domain> | grep -i creat や Vercel vercel domains ls --scope <id> のAge列で確認。新規ドメイン → ImprovMX無料を使う(下記「ImprovMX経路」)。90日超の枯れたドメイン → Forward Email DNS-only(アカウント不要で全自動)。

Forward Email経路(90日超ドメインのみ・アカウント不要)

  1. 前提確認(既存メール設定との衝突回避):

    dig +short MX <domain> @8.8.8.8     # 既にMXがあれば衝突→別対応
    dig +short TXT <domain> @8.8.8.8    # 既存SPFがあればマージ必要
    

    既存MX/SPFが無ければ追記はライブサイトに無影響。

  2. Vercelスコープを特定(罠): プロジェクトの ~/dev/<proj>/.vercel/project.jsonorgIdteam_xxxx)を読む。vercel dns ls/addデフォルトスコープだと "You don't have permission" で弾かれることがある(vercel teams ls に出ないチームでも)。必ず --scope <orgId> を付ける

    cat ~/dev/<proj>/.vercel/project.json   # orgId取得
    vercel dns ls <domain> --scope <orgId>  # 権限OKか確認
    
  3. 最新のDNS値を裏取り(ハードコード禁止): https://forwardemail.net/en/faq をWebFetchで確認。2026-06時点の値:

    • MX @mx1.forwardemail.net(priority 0)
    • MX @mx2.forwardemail.net(priority 0)
    • TXT @forward-email=<dest>@gmail.com(プレフィックス無し=catch-all。全アドレスをdestへ)
    • TXT @v=spf1 a include:spf.forwardemail.net -all
  4. 追加(zshは$VARを単語分割しない→フラグは直書き):

    cd ~/dev/<proj>
    vercel dns add <domain> '@' MX mx1.forwardemail.net 0 --scope <orgId>
    vercel dns add <domain> '@' MX mx2.forwardemail.net 0 --scope <orgId>
    vercel dns add <domain> '@' TXT 'forward-email=<dest>@gmail.com' --scope <orgId>
    vercel dns add <domain> '@' TXT 'v=spf1 a include:spf.forwardemail.net -all' --scope <orgId>
    
  5. 特定アドレスだけ別の転送先に分けたい場合は catch-all の代わりに: forward-email=contact:[email protected],aibijo:[email protected] のようにプレフィックス指定。集約+Gmailラベル仕分けで足りるなら catch-all 1本でよい。

ImprovMX経路(新規ドメイン可・無料・要アカウント1回)

新規ドメインで Forward Email が使えない時の本命。ImprovMXは新規ドメイン制限なし・無料で 1ドメイン/25エイリアス/catch-all。

  1. DNSを先に差し替え(私がCLIで実施。Forward Emailのレコードが残っていればMX/SPF/forward-email TXTを全削除してから):
    cd ~/dev/<proj>
    vercel dns add <domain> '@' MX mx1.improvmx.com 10 --scope <orgId>
    vercel dns add <domain> '@' MX mx2.improvmx.com 20 --scope <orgId>
    vercel dns add <domain> '@' TXT 'v=spf1 include:spf.improvmx.com ~all' --scope <orgId>
    
    削除は vercel dns ls <domain> --scope <orgId> でrec_id確認→vercel dns rm <id> --yes --scope <orgId>
  2. 本人がやる手動(~2分): improvmx.com で転送先Gmail(Google)サインイン→ドメイン追加(MX/SPFは設定済で即検証OK)→エイリアス作成: catch-all *→転送先(無料で不可なら個別 contact@/aibijo@ 等)。
  3. ImprovMXはAPIあり(api.improvmx.com)。本人のAPIキー入手後はエイリアスをcurlで作成可=完全自動化できる。

Pitfalls

  • scope必須: --scope <team_id> 無しは権限エラー。vercel teams ls に出なくてもscope明示でアクセス可。
  • zsh単語分割なし: S="--scope x"; cmd $S は1トークン扱いで unknown option になる。フラグはコマンドに直書きするか ${=S}
  • 送信は別物: これは受信転送のみ。<addr>@domain から送りたいなら Gmail「Send mail as」+ SPFに include:_spf.google.com 追記が別途必要。
  • 既存MX/SPFがあるドメインは上書き注意(SPFは1レコードにマージ)。
  • 転送先Gmailは最初フォワードメールをスパム判定することがある→受信したら「迷惑メールでない」を押す。

Verification

実メールを送らずに catch-all 稼働を確認(port25が通る環境):

python3 - <<'PY'
import smtplib, socket
socket.setdefaulttimeout(15)
for h in ("mx1.forwardemail.net","mx2.forwardemail.net"):
    s=smtplib.SMTP(h,25); s.ehlo("probe.local")
    s.mail("[email protected]")
    print(h, s.rcpt("anything@<domain>"))   # (250, b'... Accepted') ならOK
    s.quit()
PY

250 ... Accepted はMXが受理しただけ。⚠️RCPT 250 は実転送を保証しない(新規ドメインのForward Emailは250で受けてから転送せずupgrade要求を返す)。最終確認は必ず実メールを1通送って転送先に着信するかで行う。「完璧?」と聞かれても実着信テスト前は「受信インフラOK・実配信1通だけ未確認」と正直に切り分けて報告する。

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,834. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.