1

jQuery ajax呼び出しから投稿されたGET変数を読み取り、それらの値のいくつかに基づいて電子メールを送信する、単純で完全にスタンドアロンのASPスクリプトを作成しようとしています. ただし、私は ASP にまったく慣れていないため、変換に問題があります。

私の調査によると、$_GET['var_name'] に相当する ASP は Request.QueryString['var_name'] のようです。しかし、電子メールを送信すると、ASPEmail、CDOSYS、IPWorksMail、JMail などのあらゆるものを使用した例に出くわしました。いくつか試してみましたが、良い結果が得られない傾向があります。

PHPで書かれたASPで達成しようとしているものは次のとおりです。

<?php
  if($_GET['val1'] != "") {
    // Add section one to the email.
  }

  if($_GET['val2'] != "") {
    // Add section two to the email
  }

  $email_company = mail($_GET['company_email'], $subject, $message, $headers);
  $email_client = mail($_GET['client_email'], $subject, $message, $headers);

  if($email_company && $email_client) {
    echo 'success';
  }
  else {
    echo 'error';
  }

?>

では、メールには何を使用すればよいでしょうか。このページをスタンドアロンにして、それ自体で AJAX 呼び出しを受信できるようにすることはできますか? お時間をいただきありがとうございます。

編集:

私はこのようなことを試みてきましたが、必ず500サーバーエラーが発生します。表示されるのは 500 ページだけなので、エラー メッセージを表示できません。そのため、どこで問題を探すべきかわかりません。

<%=


' Create the Mail Message
Dim Mail As New MailMessage

' Set the address information
Mail.From = New MailAddress("from@website.com") 
Mail.To.Add("to@website.com")

' Set the content of the email
Mail.Subject = "Testing Email"
Mail.Body = "Hello, I am a test email!"

' Send the message
Dim SMTP As New SmtpClient("MAIL SERVER")
SMTP.EnableSsl = False
SMTP.Credentials = New System.Net.NetworkCredential("USERNAME", "PASSSWORD")
SMTP.Port = 25

SMTP.Send(Mail)



%>
4

1 に答える 1

0

スタンドアロン ページと webmethod を使用した例を次に示します。それでも問題が解決しない場合は、Web サーバーの構成に問題がある可能性があります。IIS を使用している場合は、適切なバインディングを使用して、Web サイト内の仮想ディレクトリまたはアプリケーションにページを設定したことを確認してください。その場所に簡単な html ページを作成して、ページが到達可能であることを確認してください (そして、「どこに」あると思いますか)。

乾杯。

 <%@ Page Language="C#" %>


<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>

    $(function () {

        var params = {};
        params['from'] = 'fake@test.com'
        params['to'] = 'fakeone@test.com;faketwo@test.com';
        params['body'] = 'hello world';       

        $.ajax({
            type: 'POST',
            url: 'default.aspx/SendMail',
            data: JSON.stringify(params),
            contentType: 'application/json; charset=utf-8',
            dataType: "json"
        });
    });
</script>

<script runat="server">


    [System.Web.Services.WebMethod]
    public static void SendMail(string to, string from, string body) 
    {

        var mail = new System.Net.Mail.MailMessage();
        mail.Body = body;
        mail.From = new System.Net.Mail.MailAddress(from);
        foreach (var r in to.Split(';'))
            mail.To.Add(r);

        var smtp = new System.Net.Mail.SmtpClient("mail.yourdomain.com");

        smtp.Send(mail);

    }

</script>
于 2013-05-13T20:48:56.927 に答える