-2

ページが読み込まれるたびに (無言で) メールを送信する必要があります。以下のコードを試しました:

<html>
<head>
<script language="javascript" type="text/javascript"> 

var email = "h.kamrava@yahoo.com" 
var subject = "test" 
var body = "Hello world" 

document.write("<form name="form" action=\"mailto:"+ email +"\?subject="+ subject +"\&body="+ body +"\" method=\"post\" enctype=\"text/plain\"></form>") 
</script>
</head>
<body onload="document.form.submit()">
</body>
</html>

それは私にはうまくいきません!私は何を間違っていますか?tnx

4

5 に答える 5

2

フォーム、特に投稿フォームで同じことができるとは思いません。どちらの場合でも、ユーザーがその電子メールを送信する必要があるため、あなたが行うことは黙っていません。mailto: 単純に、独自のクライアントを使用してメールを送信する方法をユーザーに提示します。

HTML ドキュメントからメールをすばやく送信したい場合は、アンカー内で mailto: を使用し、ユーザーがクリックするのを待つか、強制的にクリックします。

<a href="mailto:hello@world.com">My link</a>

PHP やその他のサーバー側言語を使用できる場合は、はるかに簡単で「サイレント」になります。PHP のmail()関数を調べてみてください。これを使用すると、誰から誰にでもメールを送信できます。

于 2013-05-01T06:47:02.373 に答える
2

JS に任せるのではなく、PHP の mailのようにサーバーに任せることをお勧めします。ページの読み込み時にサーバーにリクエストを送信して、ターゲットに電子メールを送信するようにサーバーに指示できます。その方法:

  • ページに厄介で不気味なスクリプトはありません。
  • メールが実際に送信されたことを知ることはありません。
  • 「発射して忘れる」。リクエストをサーバーに送信して完了です。残りはサーバーが行います。
  • サーバーにのみ書き込まれるメール アドレスはサーバー側に隠され、メール ハーベスターやその後のスパムを回避します。

それをトリガーするリクエストは、1x1 gif、スクリプト、AJAX などの読み込みなど、何でもかまいません。

于 2013-05-01T06:47:37.577 に答える
1

この目的には ajax を使用する必要があります。たとえば、次のような JQuery ajax を使用できます。

$(document).load('ajax/mail.php?email=exp@mail.com&subject=test&body=hi')

次に、phpページでmail()関数を使用して送信します

于 2013-05-01T06:50:13.000 に答える
0

編集: フォーム コードを見ると、これは実際にはメールを送信しないことがわかります...しかし、これは JavaScript を使用してフォームを送信する方法です。電子メールをサイレントに送信する場合は、何らかのバックエンド サービスに投稿する必要があります。

すべてをロード ハンドラに入れてみます。

<html>
<head>
<script language="javascript" type="text/javascript"> 

function sendEmail(){
    var email = "h.kamrava@yahoo.com" 
    var subject = "test" 
    var body = "Hello world" 

    document.write("<form name="form" action=\"mailto:"+ email +"\?subject="+ subject +"\&body="+ body +"\" method=\"post\" enctype=\"text/plain\"></form>");
    document.form.submit();
}
</script>
</head>
<body onload="sendEmail()">
</body>
</html>
于 2013-05-01T06:49:14.967 に答える
0

これをチェックアウト:

http://jsfiddle.net/4gGFR/

フォームポストを呼び出す代わりに、それを呼び出します<body onload="sendemail();">

于 2013-05-01T06:51:28.517 に答える