如果用户忘记发送密码

时间:2014-09-26 21:37:41

标签: asp-classic

我正在使用asp进行一个项目,我有一个部分用户忘记了输入电子邮件的密码,如果有效,则会发送密码。现在问题是,它能够检查电子邮件是否在数据库中并且发送邮件,但是无法发送密码。

<%

'Check if the form has been processed
If Request.Form("process")="true" Then
  'Check the recordset for a valid record


  If Not rs_user.Eof Then
    'Valid record, so proceed with the email
    Call sSendReminder (rs_user("email"), rs_user("password"))
    Response.Write "Your password has been sent to your inbox. If you don't find it in your mail box, check your junk mail folder" 


     dim sName, sEmail, sMessage
    dim oCdoMail, oCdoConf, sConfURL


    sEmail = Request.Form("email")


        Set oCdoMail = Server.CreateObject("CDO.Message")
        Set oCdoConf = Server.CreateObject("CDO.Configuration")

        sConfURL = "http://schemas.microsoft.com/cdo/configuration/"



        with oCdoConf
            .Fields.Item(sConfURL & "sendusing") = 2
            .Fields.Item(sConfURL & "smtpserver") = "smptserveraddress.com"
            .Fields.Item(sConfURL & "smtpserverport") = 25
            .Fields.Update


        end with

        with oCdoMail
            .From = "noreply@sample.com"
            .To = sEmail
            .Subject = "Password Recovery from samplesite"
            .TextBody = "Your password is: " & password
            .HTMLBody = "Your password is: " & password
            .Configuration = oCdoConf
            .Send
        end with

        Set oCdoConf = Nothing
        Set oCdoMail = Nothing


  Else
    'Not a valid record
    Response.Write "Sorry, no email was found."
  End If
End If 

        Sub sSendReminder(email, password)

End Sub

%GT;

1 个答案:

答案 0 :(得分:0)

上面的代码是您运行的确切代码吗?

如果是这样,您需要移动

Sub sSendReminder(email, password)

以上

dim sName, sEmail, sMessage 

你还需要移动那些&#34;如果&#34;子目录之外的陈述。

您的代码运行(我认为),因为它在技术上是正确的,但它并不像您认为的那样运行,因为您的sub实际上是空白的。

正确的代码如下所示:

&#13;
&#13;
<%

'Check if the form has been processed
If Request.Form("process")="true" Then
  'Check the recordset for a valid record


If Not rs_user.Eof Then
    'Valid record, so proceed with the email
    Call sSendReminder (rs_user("email"), rs_user("password"))
    Response.Write "Your password has been sent to your inbox. If you don't find it in your mail box, check your junk mail folder" 
 Else
    'Not a valid record
    Response.Write "Sorry, no email was found."
  End If
End If 
	
	
	
Sub sSendReminder(email, password)

     dim sName, sEmail, sMessage
    dim oCdoMail, oCdoConf, sConfURL


    sEmail = Request.Form("email")


        Set oCdoMail = Server.CreateObject("CDO.Message")
        Set oCdoConf = Server.CreateObject("CDO.Configuration")

        sConfURL = "http://schemas.microsoft.com/cdo/configuration/"



        with oCdoConf
            .Fields.Item(sConfURL & "sendusing") = 2
            .Fields.Item(sConfURL & "smtpserver") = "smptserveraddress.com"
            .Fields.Item(sConfURL & "smtpserverport") = 25
            .Fields.Update


        end with

        with oCdoMail
            .From = "noreply@sample.com"
            .To = sEmail
            .Subject = "Password Recovery from samplesite"
            .TextBody = "Your password is: " & password
            .HTMLBody = "Your password is: " & password
            .Configuration = oCdoConf
            .Send
        end with

        Set oCdoConf = Nothing
        Set oCdoMail = Nothing
End Sub %>
&#13;
&#13;
&#13;