经典ASP将邮件发送到文本框中输入的电子邮件地址

时间:2013-06-28 17:53:33

标签: session asp-classic textbox cdo.message

我正在尝试从名为order.asp的.asp文件中的文本框接收电子邮件地址的输入,然后使用名为ordercomplete.asp的另一个.asp文件中的代码通过电子邮件发送到该电子邮件地址(使用CDO邮件)。如果我专门定义ObjSendMail.To = someemail@provider.com,邮件程序可以正常工作,但如果我使用会话变量使得ObjSendMail.To = Session(“EmailSession”)以使其更具动态性,则不能正常工作。这是order.asp

<form id="form1" name="form1" method="post" action="ordercomplete.asp">
  <p>
    <label for="firstname">First Name:</label>
    <input type="text" name="firstname" id="firstname" />
    <%
    Session("EmailSession") = Request.Form("email")
    %>
  </p>
  <p>
    <label for="email">E-Mail Address:</label>
    <input type="text" name="email" id="email" />
  </p>
  <p>
    <input type="submit" name="submit" id="submit" value="Submit" />
  </p>
</form>
<p>&nbsp;</p>

在ordercomplete.asp中,我尝试查看是否可以在order.asp中打印已在电子邮件文本框中输入的值,然后才能继续将ObjSentMail.To设置为会话变量。我尝试使用

打印并查看Session(“EmailSession”)中是否保存了任何内容
<%
Response.Write(Session("EmailSession"))
%>

但它什么都没打印。如何从一个asp文件中获取输入值以这种方式在另一个asp文件中传输?

感谢。

2 个答案:

答案 0 :(得分:0)

更改AspNet文本框的输入。更改AspNet按钮的输入按钮。为OnClick事件添加处理程序。在那里,明确地将文本框中的电子邮件添加到会话对象中。以下代码未经过测试,因此请在使用

之前进行检查
protected void MyButton_Click(object sender, EventArgs e){
    Session.Add(txtEmail.Text);
    Response.Redirect("~/MyOtherPage.aspx");
}

答案 1 :(得分:0)

您要将表单order.asp发布到ordercomplete.asp。表单字段email仅在已发布到的页面中可用,您在表单操作中将其作为ordercomplete.asp提供:action="ordercomplete.asp"

ordercomplete.asp中,您可以使用Request.Form("email")获取表单字段的值。