カテゴリー
コンピューター

mailto リンクに予め件名などを「文字化け」しないように入れる方法ですよ♪

ウェブページのリンクをクリックしてメーラーを起動、送信する方法をメモします。

基本的な型

<a href="mailto:mailto@example.com?subject=ここが件名&body=ここに本文">メールへのリンク</a>

実際に使うときはこんな問題にぶつかります。

以上、、、なのですが問題があります。

  • UTF-8 のページだと、文字化けします。
  • 件名はともかく、本文は改行したい。

ではどうしましょうか?1つ目は以前解決した問題と同じです。これですね。

つまり、全角日本語を URL エンコーディングすればよいのです。これを行うのに便利なサイトを挙げておきます。3つ目のページがよいです。半角英数はそのままなので、文字数が節約できます。

続いて、改行です。これは改行文字を URL エンコーディングすればよいです。それで、エンコーディングしたものが、こちらになります。

  • %0D%0A

では例です。

リンクをクリックしたら、次のような感じの本文でメーラーを起動させてみます。

ここから本文です。
まずは挨拶。
mailtoなので以下のフォーマットに従って
メールを送信してください、という形が多そう。
★お名前
★おところ
★ご用件
————————————————–
署名株式会社
部署をここに
お名前をここに
MAIL wasshoi@example.com
TEL 0000-00-0000
FAX 1111-11-1111
HP http://www.example.com
————————————————–

まずは、先ほどのサイトで、URL エンコーディングします。改行が削除される、、、なんてこともなく、一気にできました。

%82%B1%82%B1%82%A9%82%E7%96%7B%95%B6%82%C5%82%B7%81B%0D%0A%82%DC%82%B8%82%CD%88%A5%8EA%81B%0D%0Amailto%82%C8%82%CC%82%C5%88%C8%89%BA%82%CC%83t%83H%81%5B%83%7D%83b%83g%82%C9%8F%5D%82%C1%82%C4%0D%0A%83%81%81%5B%83%8B%82%F0%91%97%90M%82%B5%82%C4%82%AD%82%BE%82%B3%82%A2%81A%82%C6%82%A2%82%A4%8C%60%82%AA%91%BD%82%BB%82%A4%81B%0D%0A%0D%0A%81%9A%82%A8%96%BC%91O%0D%0A%0D%0A%81%9A%82%A8%82%C6%82%B1%82%EB%0D%0A%0D%0A%81%9A%82%B2%97p%8C%8F%0D%0A%0D%0A————————————————–%0D%0A%8F%90%96%BC%8A%94%8E%AE%89%EF%8E%D0%0D%0A%95%94%8F%90%82%F0%82%B1%82%B1%82%C9%0D%0A%82%A8%96%BC%91O%82%F0%82%B1%82%B1%82%C9%0D%0AMAIL%81%40wasshoi%40example.com%0D%0ATEL%81%400000-00-0000%0D%0AFAX%81%401111-11-1111%0D%0AHP%81%40http%3A%2F%2Fwww.example.com%0D%0A————————————————–%0D%0A

これを、mailto に組み込みます。

<a href="mailto:mailto@example.com?subject=ここが件名&body=%82%B1%82%B1%82%A9%82%E7%96%7B%95%B6%82%C5%82%B7%81B%0D%0A%82%DC%82%B8%82%CD%88%A5%8EA%81B%0D%0Amailto%82%C8%82%CC%82%C5%88%C8%89%BA%82%CC%83t%83H%81%5B%83%7D%83b%83g%82%C9%8F%5D%82%C1%82%C4%0D%0A%83%81%81%5B%83%8B%82%F0%91%97%90M%82%B5%82%C4%82%AD%82%BE%82%B3%82%A2%81A%82%C6%82%A2%82%A4%8C%60%82%AA%91%BD%82%BB%82%A4%81B%0D%0A%0D%0A%81%9A%82%A8%96%BC%91O%0D%0A%0D%0A%81%9A%82%A8%82%C6%82%B1%82%EB%0D%0A%0D%0A%81%9A%82%B2%97p%8C%8F%0D%0A%0D%0A--------------------------------------------------%0D%0A%8F%90%96%BC%8A%94%8E%AE%89%EF%8E%D0%0D%0A%95%94%8F%90%82%F0%82%B1%82%B1%82%C9%0D%0A%82%A8%96%BC%91O%82%F0%82%B1%82%B1%82%C9%0D%0AMAIL%81%40wasshoi%40example.com%0D%0ATEL%81%400000-00-0000%0D%0AFAX%81%401111-11-1111%0D%0AHP%81%40http%3A%2F%2Fwww.example.com%0D%0A--------------------------------------------------%0D%0A">メールへのリンク</a>

実際のメールのリンクはこちらです。

・・・Gmail で起動したら、本文が文字化けておりました。こうなったら、3パターン作ってみます。

どうかな?3つめ以外は文字化けしません。ここで、わたくしはピーンときたのです。

このページは、UTF-8 と明示的に指定しています。

ですので、UTF-8 でエンコーディングしたものは文字化けしない、S-JIS でエンコーディングしたものは文字化けする、そういうことのようです。

エンコーディングなしが文字化けないのは、、、よくわかりません。

逆に S-JIS のウェブページの場合は S-JIS で URL エンコーディングすればよさそうです。

以上です。