116

これは説明するのが少し紛らわしいので、ここで我慢してください...

サーバーを使用して実際に送信されるのではなく、ユーザーが自分のWebサイトを介してテンプレート化された電子メールを送信できるシステムをセットアップしたいのですが、代わりに、すぐに使用できる電子メールで自分のローカルメールクライアントを開きます。アプリケーションは、電子メールの本文に事前定義された変数を入力して、ユーザーが自分で入力する手間を省きます。その後、目的に正確に合わない場合は、必要に応じてメッセージを編集できます。

ユーザーのローカルメールクライアントを経由する理由はいくつかあるので、サーバーにメールを送信させることはできません。100%クライアント側である必要があります。

私はすでにほとんど機能しているソリューションを実行していますが、その詳細を回答として投稿します。もっと良い方法があるかどうか疑問に思っています。

4

9 に答える 9

149

私が今それをしている方法は基本的にこのようなものです:

HTML:

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

Javascript:

function sendMail() {
    var link = "mailto:me@example.com"
             + "?cc=myCCaddress@example.com"
             + "&subject=" + encodeURIComponent("This is my subject")
             + "&body=" + encodeURIComponent(document.getElementById('myText').value)
    ;
    
    window.location.href = link;
}

これは、驚くべきことに、かなりうまく機能します。唯一の問題は、本文が特に長い場合(2000文字を超える場合)、新しい電子メールを開くだけで、情報が含まれないことです。URLの最大長を超えていることが関係しているのではないかと思います。

于 2008-11-07T03:33:28.700 に答える
19

jQueryとクリックする「要素」を使用して行う方法は次のとおりです。

$('#element').click(function(){
    $(location).attr('href', 'mailto:?subject='
                             + encodeURIComponent("This is my subject")
                             + "&body=" 
                             + encodeURIComponent("This is my body")
    );
});

次に、入力フィールドからフィードすることによって (つまり、 を使用する$('#input1').val()か、サーバー側スクリプトを使用して) コンテンツを取得できます$.get('...')。楽しんでください。

于 2012-02-20T18:00:37.823 に答える
14

javascriptは必要ありません。必要なのは、hrefを次のようにコーディングすることだけです。

<a href="mailto:me@me.com">email me here!</a>
于 2008-11-07T03:42:01.460 に答える
5

テキストボックスでライブ検証を行い、2000(または最大しきい値)を超えると、「このメールは長すぎてブラウザで完了できません。」と表示されます<span class="launchEmailClientLink">launch what you have in your email client</span>

私が持っているだろう

.launchEmailClientLink {
cursor: pointer;
color: #00F;
}

これをonDomReadyにjQueryします

$('.launchEmailClientLink').bind('click',sendMail);
于 2008-11-07T03:47:35.737 に答える
3

これでユーザーのクライアントがメールを送信できるようになるだけの場合は、そこでもメールを作成してもらいましょう。送信内容を追跡することはできなくなりますが、それが重要でない場合は、アドレスと件名を収集し、クライアントをポップアップして、ユーザーが本文に入力できるようにします。

于 2008-11-07T03:41:17.263 に答える