将静态HTML表单数据传递到ASPX文件



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

我的问题是,我们的网站有一个联系人表格,它布局良好,经过验证,响应迅速,工具提示等,但我需要将表格提交到电子邮件中。通常我会使用PHP来完成这项工作,但如上所述,这不是一个选项。

作为概念验证,我想做的就是使用ASP读取表单数据。一旦我完成了这项工作,并证明所有数据都是从表单中读取的,然后我将把值传递给我们的SMTP客户端。

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

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

对于示例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>

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

当您使用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);

最新更新