我怎样才能在ASP中重新创建PHP邮件脚本?

时间:2013-05-13 18:44:39

标签: asp.net ajax

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

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

以下是我用ASP编写的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)



%>

1 个答案:

答案 0 :(得分:0)

以下是使用独立页面和webmethod的示例。如果您仍然遇到问题,则可能是您的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>