1. ホーム
  2. javascript

[解決済み] Javascriptでメールを送信する

2022-05-17 20:32:27

質問

ちょっと説明がわかりにくいので、ここで我慢してください...。

私は、ユーザーが私の Web サイト経由でテンプレート化された電子メールを送信できるシステムを構築したいのですが、実際には私のサーバーを使用して送信されません。アプリケーションは、ユーザーが自分で入力する手間を省くために、あらかじめ定義された変数でメールの本文を埋めます。その後、ユーザーの目的に合わない場合は、必要に応じてメッセージを編集することができます。

ユーザーのローカルのメールクライアントを介して送信したい理由がいくつかあるので、サーバーからメールを送信することはオプションではありません:100%クライアント側でなければなりません。

私はすでにほとんど動作するソリューションを実行しており、その詳細を回答として投稿するつもりですが、何か良い方法はないでしょうか。

どのように解決するのですか?

今やっている方法は、基本的にこんな感じです。

HTMLの方です。

<textarea id="myText">
    Lorem ipsum...
</textarea>
<button onclick="sendMail(); return false">Send</button>

Javascriptのことです。

function sendMail() {
    var link = "mailto:[email protected]"
             + "[email protected]"
             + "&subject=" + encodeURIComponent("This is my subject")
             + "&body=" + encodeURIComponent(document.getElementById('myText').value)
    ;
    
    window.location.href = link;
}

これは意外なことに、わりとうまくいきます。唯一の問題は、本文が特に長い場合(2000文字以上)、新しいメールが開かれるだけで、その中に情報がないことです。私は、URL の最大長を超えていることと関係があるのではないかと思います。