【问题标题】:Passing a static HTML form data to an ASPX file将静态 HTML 表单数据传递给 ASPX 文件
【发布时间】:2016-05-19 09:51:02
【问题描述】:

希望您能提供帮助。我的公司网站遇到了麻烦。我的经验是 HTML、CSS 和 PHP。我所做的所有服务器脚本都是用 PHP 编写的。但是,这里的内部政策是我们不能在网站上使用 PHP。

我的问题是,我们的网站有一个联系表格,它布局合理、经过验证、响应迅速、带有工具提示等,但我需要将表格提交处理成电子邮件。通常我会使用 PHP 执行此操作,但如上所述,这不是一个选项。

作为概念证明,我要做的就是使用 ASP 读取表单数据。完成此操作并证明正在从表单中读取所有数据后,我将着手将这些值传递给我们的 SMTP 客户端。

所以,我在 ASP 方面的经验很少,我希望你们能帮助我摆脱困境。

如何将联系表中的详细信息传递给 ASP?我试过用谷歌搜索它并从其他人的例子中工作,但我很挣扎,这可能是因为我正在研究另一个问题的答案。

【问题讨论】:

  • 您使用什么框架,如何将数据发布到服务器端等,您可以在此处提供更多信息以获得正确答案!

标签: html asp.net forms


【解决方案1】:

对于一个示例 HTML 表单:

<form method="POST" action="send_email.aspx">
    <div>
        Input 1: <input type="text" name="inputFieldName1" />
    </div>
    <div>
        Input 2: <input type="text" name="inputFieldName2" />
    </div>
    <input type="submit" value="Send" />
</form>

创建一个新的文本文件send_email.aspx 并添加此内容:

<%@ Page Language="C#" %>
<%@ import Namespace="System.Net.Mail" %>

<script language="C#" runat="server">   
    public void Page_Load( Object sender, EventArgs E )
    {       
        // Here you get the input values, equivalent to $_POST["inputFieldName1"]/$_GET["inputFieldName1"], etc...
        string inputFieldValue1 = ""+Request["inputFieldName1"];
        string inputFieldValue2 = ""+Request["inputFieldName2"];

        // this part is taken from @hrvoje-hudo response, thanks to him !
        var mail = new MailMessage();
        SmtpClient client = new SmtpClient("smtp-server-host");

        mail.From = new MailAddress("from@domain.com");

        mail.To.Add("to@domain.com");

        mail.Subject = "The subject";

        // Here you define your message
        mail.Body = "Hello,\n";
        mail.Body += "Input1 = " + inputFieldValue1 + "\n";
        mail.Body += "Input2 = " + inputFieldValue2 + "\n";

        client.Port = 587;
        client.Credentials = new System.Net.NetworkCredential("username", "password");
        client.EnableSsl = true;

        client.Send(mail);

    }
</script>

配置输入列表、服务器主机、电子邮件发件人/收件人、消息,就是这样!

【讨论】:

    【解决方案2】:

    当你通过 POST 方法接收表单数据时,你可以使用 SmtpClient 发送电子邮件:

    var mail = new MailMessage();
    SmtpClient client = new SmtpClient("smtp server");
    
    mail.From = new MailAddress("some_email@gmail.com");
    mail.To.Add("to address");
    mail.Subject = "Test Mail";
    mail.Body = "Body";
    
    client.Port = 587;
    client.Credentials = new System.Net.NetworkCredential("username", "password");
    SmtpServer.EnableSsl = true;
    
    client.Send(mail);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多