メール送信時に件名と本文を自動挿入
HTML の <a> タグを使用して、メールを送信する際に件名 (Subject) と本文を自動挿入する事が出来る。テンプレートの目的で使用しているのをしばしば見かけることがある。
<a href="mailto:your-address@domain?subject=件名&body=本文">メール</a>
<a href="mailto:reg@domain?subject=ID845727506992&body=このまま編集しないで送信すれば登録が完了します。">登録メール</a>
登録を完了するには以下のリンクからメールを送信してください。
登録メール (実在しないアドレスなので本当に送信しないように / このサイトが EUC なんで多分化けますが)
互換性についてなのだが、元々は Netscape Navigator の拡張機能であり RFC によって標準化されているものではない。しかし、かなり昔からあった小技なので (たしか 1998 年頃に買った本には既に載ってたような気がする) そこそこの対応は期待しても良いだろう。
メジャーどころの現行バージョンは対応済みなのでシェア比で見れば相当高いだろう (まぁそれでも未対応ブラウザ/メーラー向けの配慮があるに越したことはない)。手元で確認出来たものと、公式サイトにサポート情報が載ってるものをリストアップしてみた。
-
Mozilla Thunderbird
-
Microsoft Outlook (Outlook Express)
-
Lotus Notes
-
Becky!
-
DoCoMo (i-mode)
-
au (ezweb)
-
Tu-Ka (ezweb)
日本語を扱う場合に URL エンコードが必須かかどうかもちょっとずつ違うようだ。
システム開発では、受信時に処理を振り分ける目的でこの機能を検討しているかもしれない。そういう用途ならメールアドレスのほうに ID を埋め込んでしまった方がクライアント側の互換性は心配する必要がないし、意図しない変更 (何せ Subject や本文だし) のリスクは少なくなる。
<a href="reg845727506992@domain">登録完了</a>
メールサーバ側では reg~ から始まるアドレス宛てのメールを特定のプログラムに渡すよう設定するだけで済む。ただしこれには qmail や postfix のような拡張アドレスに対応した MTA が必要になる。sendmail で構築した既存のシステムを変更しないで対応するのは、残念ながら無理なようだ。