1

我正在尝试创建一个简单的、完全独立的 ASP 脚本,它读取从 jQuery ajax 调用发布的 GET 变量,然后根据其中一些值发送电子邮件。但是,我对 ASP 完全陌生,并且在转换它时遇到了一些麻烦。

根据我的研究,$_GET['var_name'] 的 ASP 等效项似乎是 Request.QueryString['var_name']。但是,在发送电子邮件时,我偶然发现了几十个使用 ASPEmail、CDOSYS、IPWorksMail、JMail 等所有内容的示例。我已经尝试了一些,但我往往没有得到积极的结果。

这是我试图在 ASP 中完成的,用 PHP 编写的:

<?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

这是一个使用独立页面和 web 方法的示例。如果您仍然遇到问题,则可能是您的 Web 服务器配置存在问题。如果您使用的是 IIS,请确保您已在虚拟目录或网站内的应用程序中使用正确的绑定设置页面。尝试在该位置创建一个简单的 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 回答