web-dev-qa-db-ja.com

メールを送信するhtmlボタン

このようなhtmlのボタンからヘッダーsubjectおよびmessageに指定された初期値を含むメールを送信するにはどうすればよいですか

<form method="post" action="mailto:email.com?subject=subject&message=message">

ここで、subjectmessageは、form?からフェッチされた値です。

20
user544079

mailtoを使用できます。これはHTMLコードです。

<a href="mailto:EMAILADDRESS">

EMAILADDRESSをメールに置き換えます。

28
armn

この方法は私のブラウザーでは機能しないようで、周りを見回すと、ヘッダーをmailtoリンク/アクションに指定する主題全体がまばらにサポートされていることがわかりますが、おそらくこれが役立つかもしれません...

HTML:

<form id="fr1">
    <input type="text" id="tb1" />
    <input type="text" id="tb2" />
    <input type="button" id="bt1" value="click" />
</form>

JavaScript(jQueryを使用):

$(document).ready(function() {
    $('#bt1').click(function() {
        $('#fr1').attr('action',
                       'mailto:[email protected]?subject=' +
                       $('#tb1').val() + '&body=' + $('#tb2').val());
        $('#fr1').submit();
    });
});

ここで私がやっていることに注目してください。フォーム自体にはアクションが関連付けられていません。そして、送信ボタンは実際にはsubmitタイプではなく、単にbuttonタイプです。 JavaScriptを使用して、そのボタンのクリックイベントにバインドし、フォームのアクション属性を設定してから、フォームを送信します。

フォームをmailtoアクション(私のデフォルトのメールプログラムがポップアップし、指定されたアドレスに新しいメッセージを開く)に送信するのと同じように機能しますが、私(Safari、Mail.app)にとっては実際にはそうではありません結果のメッセージで件名または本文を指定します。

これを入力するときに他の人が指摘していると確信しているので、HTMLはこれを行うにはあまり良い媒体ではありません。これは、一部のブラウザやメールクライアントで機能する可能性があります。しかし、最近ではユーザーが太ったメールクライアントを持つことは、もはや安全な前提ではありません。前回開いたときのことは思い出せません。 HTMLのmailtoは少し古い機能であり、最近では、可能であればサーバー側でメールアクションを実行することも非常に適切です。

37
David

元の質問を本当に満足させる答えを見つけることができなかったので、標準のHTTP POSTを作成できるシンプルな無料サービス( PostMail )を作成しました。 =メール送信のリクエスト。サインアップすると、ウェブサイトにコピー&ペーストできるコードが表示されます。この場合、フォームポストを使用するだけです:

HTML:

<form action="https://postmail.invotes.com/send"
    method="post" id="email_form">

    <input type="text" name="subject" placeholder="Subject" />
    <textarea name="text" placeholder="Message"></textarea>
    <!-- replace value with your access token -->
    <input type="hidden" name="access_token" value="{your access token}" />

    <input type="hidden" name="success_url"
      value=".?message=Email+Successfully+Sent%21&isError=0" />
    <input type="hidden" name="error_url"
      value=".?message=Email+could+not+be+sent.&isError=1" />

    <input id="submit_form" type="submit" value="Send" />
</form>

繰り返しになりますが、適切な答えが見つからなかったため、このサービスを作成しました。

2
user949286

アンカーを使用して、事前に設定されたユーザーのデフォルトのメールクライアントをmailto:、ただし実際のメールを送信することはできません。 *どうやらフォームアクションでもこれを行うことが可能ですが、ブラウザのサポートは多様で信頼性が低いため、お勧めしません。

HTMLはメールを送信できません。別のトピックであるphpなどのサーバー側言語を使用する必要があります。ここでSOまたはインターネット上の他の場所でこれを行う方法に関する多くの優れたリソースがあります。

Phpを使用している場合、 SwiftMailer がかなり提案されています。

2
Wesley Murch

HTMLフォームを使用してメールを直接送信することはできません。ただし、フォームをWebサーバーに送信してから、サーバー側プログラム(たとえば、 PHP。

もう1つの解決策は、「mailto:」で行ったようにリンクを作成することです。これにより、ユーザーからローカル電子メールプログラムが開きます。そして、彼/彼女は事前に入力されたメールを送信できます。

どうやってやりたいかを決めたら、このサイトで別の(より具体的な)質問をすることができます。 (または、インターネット上のどこかで解決策を検索できます。)

2

@ user544079

今では非常に古くて無関係ですが、私は私のような人々を助けるために返信しています!次のようになります。

<form method="post" action="mailto:$emailID?subject=$MySubject &message= $MyMessageText">

ここで、$ emailID、$ MySubject、$ MyMessageTextは、FORMまたはDATABASEテーブルから割り当てる変数であるか、コード自体で値を割り当てることができます。または、次のようなコードを配置できます(通常は使用されません):

<form method="post" action="mailto:[email protected]?subject=New Registration Alert &message= New Registration requires your approval">

1
Sagar Patra
 <form action="mailto:[email protected]" method="post"               enctype="text/plain">
 Name:<br>
<input type="text" name="name"><br>
 E-mail:<br>
<input type="text" name="mail"><br>
Comment:<br>
<input type="text" name="comment" size="50"><br><br>
<input type="submit" value="Send">
<input type="reset" value="Reset">
0
P.J. Butter