Классическая отправка почты ASP на адрес электронной почты, введенный в текстовом поле

Я пытаюсь получить ввод для адреса электронной почты из текстового поля в одном файле .asp с именем order.asp, а затем отправить электронное письмо на этот адрес электронной почты, используя код в другом файле .asp с именем ordercomplete.asp (который использует почту CDO). Почтовая программа работает правильно, если я специально определяю ObjSendMail.To = [email protected], но не использую переменную сеанса, такую ​​как ObjSendMail.To = Session("EmailSession"), чтобы она была более динамичной. Это заказ.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 в переменную сеанса. Я попытался распечатать и посмотреть, есть ли что-нибудь сохраненное в сеансе («EmailSession»)), используя

<%
Response.Write(Session("EmailSession"))
%>

но ничего не печатает. Как я могу получить введенное значение из одного файла asp для передачи таким образом в другой файл asp?

Спасибо.


person TheShadowbyte    schedule 28.06.2013    source источник


Ответы (2)


Измените свои входные данные для текстовых полей AspNet. Измените кнопку ввода на кнопку AspNet. Добавьте обработчик события OnClick. Там явно добавьте электронное письмо из текстового поля в объект сеанса. Следующий код не тестировался, поэтому проверьте его перед использованием

protected void MyButton_Click(object sender, EventArgs e){
    Session.Add(txtEmail.Text);
    Response.Redirect("~/MyOtherPage.aspx");
}
person Oscar    schedule 28.06.2013
comment
Я новичок в ASP и ASP.NET. Есть ли способ сохранить .asp вместо использования ASP.NET и .aspx и имеет ли это значение? - person TheShadowbyte; 28.06.2013
comment
Простите меня, я думал, что вы были в Asp.Net вместо классического Asp. Однако, если вы изучаете новый язык, зачем начинать с такого и старого, как классика Asp? ;-) - person Oscar; 29.06.2013
comment
Я знаю, это раздражает, организация, для которой я это делал, хотела, чтобы это было классическим ASP. Я наконец убедил их изменить его на ASP.NET, и теперь проблема решена. Спасибо. - person TheShadowbyte; 03.07.2013

вы отправляете форму с order.asp по ordercomplete.asp. Поле формы email будет доступно только на странице отправки, которую вы указали как ordercomplete.asp в действии формы: action="ordercomplete.asp"

В ordercomplete.asp вы можете получить значение поля формы, используя Request.Form("email") .

person Flakes    schedule 01.07.2013