4

ページに ASP PasswordRecovery モジュールがあり、コードは次のようになります。

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
    <MailDefinition From="[email]">
    </MailDefinition>
</asp:PasswordRecovery>

しかし、フォームを送信すると、「あなたの情報にアクセスできませんでした。もう一度お試しください」というメッセージが表示されます。

私はこの質問を見て、これらの属性を私の web.config に追加するようにしました:

<providers>
    <remove name="CustomizedMembershipProvider"/>
    <add name="CustomizedMembershipProvider"
        type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="MessageBank"
        applicationName="MessageBank"
        minRequiredPasswordLength="6"
        minRequiredNonalphanumericCharacters="0"
        requiresQuestionAndAnswer="false"
        enablePasswordReset="true"
        enablePasswordRetrieval="false" />
</providers>

アプリは 1 日を通して定期的にメールを送信するため、メールは正常に機能しています。しかし、何らかの理由で回復メールが送信されません。

関連する web.config セクションは次のとおりです。

<mailSettings>
    <smtp from="[email]">
        <network host="[host]" password="[password]" userName="[username]"/>
    </smtp>
</mailSettings>

更新:「SendingMail」イベントを処理する関数を追加しました:

Protected Sub PasswordRecovery_submit(ByVal sender As Object, ByVal e As WebControls.MailMessageEventArgs) Handles PasswordRecovery.SendingMail

この関数にブレーク ポイントを追加しましたが、到達することはありません。上記のエラー メッセージがアプリに表示されるだけです。何が問題なのかをデバッグする他の方法はありますか?

4

3 に答える 3

1

そのエラーメッセージはデフォルトですUserNameFailureText

有効なユーザー名を入力していますか?

于 2010-07-13T20:10:37.903 に答える
1

web.config で smtp セクションを宣言することを覚えていますか? デフォルトでは、パスワード回復コントロールは実行中にこれを使用します。

<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network
defaultCredentials="True"
host="localhost"
port="25"
from="webmaster@mydomain.com"/>
</smtp>
</mailSettings>
</system.net>
于 2010-06-25T12:51:29.173 に答える
1

これが私が問題を解決した方法です。ブライアンの回答のコメントで述べたように、私たちのアプリはカスタム メール機能を使用しています (理由は 100% わかりませんが、通常の SMTP は機能しません)。とにかく、PasswordRecovery.SendingMailイベントを簡単に乗っ取ることができます:

Protected Sub PasswordRecovery_submit(ByVal sender As Object, ByVal e As WebControls.MailMessageEventArgs) Handles PasswordRecovery.SendingMail
    ' do custom email sending here, using the variables in e.Message 

    e.Cancel = False
End Sub
于 2010-07-14T16:41:31.053 に答える