logo
コーディング

更新日

メールアドレスを指定できるmailtoリンクの設定方法や便利なスクリプト

多くのWebサイトでお問い合わせにはフォームを設置しているかと思います。入力ミスのチェックなど機能のついたものも多いのですが、初心者の方には設置のハードルが高く感じるかもしれません。そんな時は手軽に導入できるmailtoリンクを使ってみましょう。リンクをクリックするとユーザーがいつも使っているメールアプリが起動するので、送信元のメールアドレスを入力する手間も省けますよ。懸念されやすい迷惑メールの対策をしているスクリプトも紹介します!

mailto リンクの使い方

a タグの href 属性に mailto:メールアドレス と記述すれば OK。リンクテキストをクリックするとメールアプリが起動し、メール作成画面が表示されます。

細かい設定をしたい場合は必要項目を mailto:メールアドレス?項目 という形式で ? を使って続けて記述していきます。複数の項目を指定する場合は & を使ってつなげましょう。

件名

subject でメールの件名を指定できます。

<a href="mailto:hello@example.com?subject=件名">お問い合わせ</a>

本文

body でメール本文を指定できます。

<a href="mailto:hello@example.com?body=本文のテキスト">お問い合わせ</a>

CC

ccmailto で書いたメールアドレス以外のメールアドレスを送信先として指定できます。複数のメールアドレスを指定する時は ,(カンマ)でつなぎます。

<a href="mailto:hello@example.com?cc=info@example.com">お問い合わせ</a>

BCC

bccmailto で書いたメールアドレス以外のメールアドレスを宛先を伏せて指定できます。複数のメールアドレスを指定する時は ,(カンマ)でつなぎます。

<a href="mailto:hello@example.com?bcc=info@example.com">お問い合わせ</a>

mailto リンクのコードを生成してくれる「Mailtolink.me

Mailtolink.meではメール作成画面のようなデザインで mailto リンクのコードを生成してくれます。宛先や件名はもちろん、CC、BCC の設定も OK。自分で手打ちしなくていいので記述ミスを防げます。画面下に出てくる「Copy Code」をクリックするとクリップボードにコピーできます。

mailto:hello@example.com?cc=mana@example.com&?subject=Hello

これをそのままリンク先に指定すれば、メールアドレス宛てのリンクテキスト完成です!

<a href="mailto:hello@example.com?cc=mana@example.com&?subject=Hello"
  >お問い合わせ</a
>

通常日本語だと文字化けするので「日本語のエンコード」という作業が必要になりますが、このサイトでは自動的にエンコードされますよ。

mailto:hello@example.com?subject=%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B&body=Web%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8B%E3%82%89%E3%81%AE%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%EF%BC%9A

上記画像にある日本語を含めた設定にすると、このような文字列がコピーできます。「表示がおかしくなっちゃった!?」と思うかもしれませんが、これで実際にメールを立ち上げるときちんと日本語で表示されます。

起動するメールの種類を選択できるようにする「MailtoUI」

mailto リンクはユーザーがデフォルトで設定しているメールアプリを起動しますが、それが逆に不便に感じることもあるでしょう。そんな時使えるのがMailtoUI。mailto リンクをクリックすると、以下の選択肢から選べるモーダルウィンドウを表示できるようになる JavaScript です。

  • ブラウザーの Gmail
  • ブラウザーの Outlook
  • ブラウザーの Yahoo.com
  • デフォルトのメールアプリ
  • メールアドレスをコピーする

通常の mailto リンクではどのメールから送信できるか選択できないのが難点でしたが、このような選択肢があると便利ですね。

「MailtoUI」の使い方

</body> の直前に mailtoui-min.js を読み込ませます。用意されている CDN を使ってもいいですし、ファイルのダウンロードも可能

<body>
  ... ...
  <script src="https://cdn.jsdelivr.net/npm/mailtoui@1.0.2/dist/mailtoui-min.js"></script>
</body>

あとは a タグに「mailtoui」というクラスをつけて mailto リンクを貼れば完成です。

<a class="mailtoui" href="mailto:hello@example.com">お問い合わせ</a>

デモ

オプションでクラス名を変えたり、デフォルトで「Gmail in browser」などと書かれている表記を変更できます。

迷惑メール対策もできる「mailgo」

MailtoUI と同様、mailto リンクをクリックするとモーダルウィンドウを表示できるmailgo。機能としてはほぼ同じですが、こちらでは迷惑メール対策用の「スパムレス」オプションもあります。mailto リンクのデメリットとして挙げられる迷惑メール。気になる方はこちらを使ってみるといいでしょう。

「mailgo」の使い方

</body> の直前に mailgo.min.js を読み込ませます。用意されている CDN を使ってもいいですし、ファイルのダウンロードも可能

<body>
  ...
  <script src="https://unpkg.com/mailgo@0.12.2/dist/mailgo.min.js"></script>
</body>

ファイルを読み込ませるだけで設定完了!特にクラスなどを付与しなくても、すべての mailto リンクでモーダルウィンドウが表示されます。

「mailgo(スパムレス)」の使い方

迷惑メール対策用の使い方です。以下のように a タグにそれぞれの属性を記述しましょう:

  • href … #mailgo
  • data-address … メールアドレスの@より前
  • data-domain … メールアドレスの@より後

例えばメールアドレスが hello@example.com だった場合は

<a href="#mailgo" data-address="hello" data-domain="example.com"
  >お問い合わせ</a
>

と記述します。

デモ

オプションで「スパムレス」バージョンでも CC、BCC、件名、本文も属性として記述できます。詳しくは公式ドキュメントを参照してください


昔からある mailto リンクですが、便利なツールやスクリプトをうまく使って取り入れるといいですね!「でもやっぱりフォームがいい!」という方は過去記事「初心者でも簡単!日本語で手軽に設置できるフォーム作成サービス 3 選」を参考に設置してみてください!