mailtoリンク作成
support@example.comと件名、本文を入れると、そのまま貼れるmailtoリンクができます。Hello from the webはHello%20from%20the%20webになり、空白や&記号も正しくエンコードされます。既存のリンクも分解でき、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 計算モード
- Encode
- To
- support@example.com
- 科目
- Hello from the web
- ボディ
- Please review the attached notes.
- Cc
- ops@example.com
- Bcc
- archive@example.com
- クエリパラメーター数
- 4
mailtoリンクは、Webページと訪問者のメールクライアントをつなぐ最小の橋です。ワンクリックで宛先が入った下書きが開き、多くの場合はコールトゥアクションに沿った件名と本文も用意されます。手作業での作成は簡単ですが、空白・アクセント・アンパサンド・改行が入るとクエリ文字列が壊れ、件名が切れ、本文が長い壊れた一行になることがあります。このmailtoリンクビルダーは宛先と任意の件名・本文・cc・bccを受け取り、ブラウザとRFC 6068が期待する百分率符号化を各ヘッダに適用し、貼り付け可能なmailto URIを返します。
mailto URIが運ぶものと符号化が重要な理由
mailto URIはmailtoスキームで始まり、カンマ区切りの1つ以上のメールアドレスのパス、続けて任意のヘッダ用クエリ文字列が続きます。符号化がないと、アンパサンドを含む件名は第2パラメータに見え、改行付き本文は潰れたり厳密なパーサに拒まれたりし、アクセント付き語は壊れたバイト列になります。
パス上およびcc・bccの宛先はドット付きドメインのlocal@domain形式として検証し、support@exampleのような誤記を早期に検出します。複数宛先はカンマで列挙でき、空の任意ヘッダは生成リンクから省略され、URIは短く読みやすく保たれます。
mailtoリンクビルダーが役立つ場面
マーケとサポートは連絡ボタンを事前入力済み下書きに結びつけ、顧客が正しい受信箱をチケット形の件名付きで開けるようにします。ドキュメントサイトやヘルプセンターは、記事URLと製品版を本文に含むページ別フィードバックリンクを、文字ごとに手エスケープせず生成します。
CMS移行ではレガシーHTMLを解析し、アンカー書き換え前に宛先と件名を構造化コンテンツモデルへ取り出します。QAスクリプトはencodeのあとparseで往復し、リリース前にテンプレート変数が合法URIへ展開されることを断言します。
実装は純粋parseのティアAのため、外向きメール配送もMXレコードのネット照会もモデルトークン費用もなく、決定的な文字列構築と検証だけです。配送が必要なら自前の送信パイプラインと組み合わせてください。
活用例
メールテンプレートの往復QA
テンプレート変数をmailto URIに符号化してから解析し戻し、件名と本文の一致を確認してリリース前に符号化の退行を検知します。
よくある質問
無効なメールアドレスとは何ですか?
各アドレスは空白や山括弧なしのlocal@domain.tld形式である必要があります。リストはカンマ区切り可です。
これはメールを送信しますか?
いいえ。 mailtoリンクの構築または解析のみです。リンクを開くのは訪問者のメールクライアント次第で、配送とSMTPは対象外です。
件名と本文入りのmailtoリンクはどう作りますか?
宛先を入れ、件名と本文を書きます。ccとbccは省略できます。各値はパーセント記号で符号化され、空の項目はリンクに入らないので、短いままボタンやフッターに使えます。
件名に&があるとリンクが壊れるのはなぜですか?
エンコードしないと、&が次の項目の始まりに見え、件名がそこで切れてしまうためです。このツールはすべての値をエンコードするので、&や疑問符、空白、アクセント、改行もそのまま届きます。
既存のmailtoリンクを各部分に分けられますか?
はい。分解を選ぶと、宛先、件名、本文、cc、bccに分け、それぞれを元の文字に戻します。知らない項目は無視し、宛先がどこにもないリンクは途中までの結果を返さずに受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/mailto-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"encode","op":"encode"}'const res = await fetch("https://api.kit.forhosting.com/enc/mailto-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "encode",
"op": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/mailto-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "encode",
"op": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/mailto-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"encode","op":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"encode","op":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/mailto-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"mode": "encode",
"op": "encode"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.mailto_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
逆方向では既存のmailtoリンクを構造化フィールドに戻し、テンプレート監査、CMS移行、フォームでの往復検証に使えます。不正なスキーム、無効なアドレス、壊れた百分率列は半デコードのゴミではなくinvalid_inputで失敗します。同じ純粋ロジックが無料ブラウザツールとAPI経路を支え、成功1回あたり$0.002です。
mailto URIが運ぶものと符号化が重要な理由
日常のプロダクト作業で重要なヘッダはsubject、body、cc、bccです。そのクエリ内の値はすべて百分率符号化し、アンパサンド・等号・疑問符・空白・非ASCII文字などの予約文字がHTML属性・QRペイロード・チャットへのコピーでも壊れないようにします。本機能は出力時にencodeURIComponent相当の符号化、入力時に厳密な復号を行い、各パーセントエスケープは16進2桁である必要があり、不完全な列は黙って切った文字列ではなくinvalid_inputを返します。
入力契約・応答形・エラー時のふるまい
スキームは大文字小文字を区別せず照合し、前後空白は切り詰めます。件名と本文を通常のメールサイズに保てば、解析パスはミリ秒未満のままです。modeをencode(既定)とし、必須のtoと任意のsubject・body・cc・bcc文字列を送ります。成功時は空でない構造化フィールドをエコーし、完全なmailto文字列を返し、書いたクエリ引数の個数を数え、クライアントがURIを再解析せず分岐できるようhas_subject・has_body・has_cc・has_bccの真偽フラグを立てます。modeがparseのときは、完全なmailto URIをmailtoフィールド(別名link・url・uri・href可)に渡します。parseモードはパスと既知ヘッダ名から同じフィールド形を埋め、前方互換のため未知ヘッダは無視し、パスにもto・cc・bccヘッダにも宛先がないリンクは拒否します。encode時のto欠落、mailtoで始まらないURI、無効なメールトークン、不正な百分率列はすべてinvalid_inputで失敗し課金されません。フィールド長は上限付きで、誤った数メガの貼り付けがワーカーメモリを圧迫しないようにしています。
mailtoリンクビルダーが役立つ場面
本機能は正しいmailtoリンクと、既にある内容の忠実なフィールド分解までで止まります。
連携の活用例
問い合わせ・サポートボタンの事前入力
固定のサポート宛先、製品固有の件名、任意の本文テンプレート付きmailtoのhrefを、ヘルプウィジェットやフッタリンク向けに生成します。
レガシーmailtoアンカーの監査と移行
HTMLエクスポート内の既存mailtoリンクを解析し、ページ書き換え前に宛先・件名・本文を構造化CMSフィールドへ回収します。
技術的な質問
件名と本文付きのmailtoリンクをどう作りますか?
modeをencode(または省略)にし、toに宛先メールを設定し、任意でsubject・body・cc・bccを渡します。応答のmailtoフィールドが百分率符号化済みヘッダ付きの即用URIです。
既存のmailto URIを解析できますか?
はい。modeをparseにし、完全な文字列をmailto(またはlink/url/uri/href)に渡します。APIは存在する場合にto・subject・body・cc・bccと、見つかったヘッダのフラグを返します。
mailtoリンクビルダーの料金は?
ブラウザツールは無料です。APIリクエストは成功1回あたり$0.002のKIT前払い残高を使い、無効入力は課金されません。