お問い合わせフォームなどを作る際には、何らかのサーバーサイドの仕組みを用意するのが一般的です。JavaScriptからSMTPサーバーに直接接続できないため、サーバー側でフォームの入力値を受け取って、メールを送信します。
そうした手間を軽減できるのがEmailJSになります。メールサーバーとWebブラウザの間に立って、メール送信を仲介してくれます。
EmailJSの使い方
EmailJSは無料でも月200通まで送信できます。まずユーザー登録を行って、ログインするとダッシュボードが表示されます。
メールサーバーの設定
まず最初にメールサーバーの設定を行います。各種メールサービスや、メール配信サービスが用意されています。Customers Mail Cloudを利用する際にはSMTPサーバーを指定してください。
そしてSMTPサーバーの設定を行います。SMTPサーバーのアドレスやポート番号は以下の通りです。
サービスプラン | SMTPホスト名 | ポート番号 |
---|---|---|
無料トライアル | sandbox.smtps.jp | 10025 |
Standard | te.smtps.jp | 10025 |
Pro | SUBDOMAIN.smtps.jp (SUBDOMAINは各ユーザに割り当てたドメイン) | 10025 |
ユーザ名およびパスワードについて
API設定画面にて、APIユーザを作成します。アクセス権限として、SMTPは必須になります。API経由での配信を行う場合はSMTPに加えて、HTTP-APIも有効にしてください。
メールテンプレートの作成
続いてメールのテンプレートを作成します。このメールは常に指定したアドレス宛に届くので、自分宛を想定して作成します(自動返信設定も用意されています)。
テンプレートの置き換え文字列は {{〜}}
という形になっています。この 〜
にはフォームの name 属性が入ります。
メール送信を試す
ではメールを送信してみます。今回はEmailJSで用意されているHTMLテンプレートを利用します。
<!DOCTYPE html> <html> <head> <title>Contact Form</title> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@emailjs/browser@3/dist/email.min.js"></script> <script type="text/javascript"> (function() { // https://dashboard.emailjs.com/admin/account emailjs.init('YOUR_PUBLIC_KEY'); })(); </script> <script type="text/javascript"> window.onload = function() { document.getElementById('contact-form').addEventListener('submit', function(event) { event.preventDefault(); // generate a five digit number for the contact_number variable this.contact_number.value = Math.random() * 100000 | 0; // these IDs from the previous steps emailjs.sendForm('EMAIL_SERVICE_ID', 'EMAIL_TEMPLATE_ID', this) .then(function() { console.log('SUCCESS!'); }, function(error) { console.log('FAILED...', error); }); }); } </script> </head> <body> <form id="contact-form"> <input type="hidden" name="contact_number"> <label>Name</label> <input type="text" name="user_name"> <label>Email</label> <input type="email" name="user_email"> <label>Message</label> <textarea name="message"></textarea> <input type="submit" value="Send"> </form> </body> </html>
この中の3つの文字列を置き換えます。
キー | 内容 |
---|---|
YOUR_PUBLIC_KEY | https://dashboard.emailjs.com/admin/accountにて確認できるパブリックキーを設定します |
EMAIL_SERVICE_ID | 作成したメール送信サービスのIDを設定します |
EMAIL_TEMPLATE_ID | 作成したメールテンプレートのIDを設定します |
これで準備完了です。
送信する
実際に送信すると、開発者ツールのコンソールに SUCCESS! という文字列が出力されます。そうすれば送信は問題ありません。
他の画面
EmailJSの他の画面です。
メール履歴
メールの送信履歴が確認できます。
コンタクト一覧
送られてきたメールアドレスや名前をコンタクトとして保存できます。CSVで出力できるので、マーケティングツールなどに取り込めます。
グラフ
メールの送信成功、失敗を日ごとのグラフで確認できます。
まとめ
EmailJSを使うことで、サーバーレスでカスタマイズできるお問い合わせフォームを設置したり、メールを伴う処理をJavaScriptだけで実装できます。
メールの配信状況なども分析できるので、自分たちでサーバーサイドを組むよりも手軽ではないでしょうか。