asp.net の PasswordRecovery コントロールを使用してパスワードを回復したかったのですが、送信ボタンをクリックすると、次のメッセージが表示されました。
コマンドの順序が正しくありません。サーバーの応答: このメール サーバーは、ローカル以外の電子メール アドレスに送信しようとすると認証が必要です。メール クライアントの設定を確認するか、管理者に連絡して、ドメインまたはアドレスがこのサーバーに定義されていることを確認してください。これは私のhtmlコードです:
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"
style="font-family: Tahoma; font-size: small"
onsendingmail="PasswordRecovery1_SendingMail" >
<MailDefinition BodyFileName="../User Pages/RecoveryPass.htm" From="info@shirinfam.com"
IsBodyHtml="True" Subject="بازیابی کلمه ی عبور" Priority="High"></MailDefinition>
<UserNameTemplate>
<table cellpadding="1" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td>
<table cellpadding="0">
<tr>
<td align="center" colspan="2">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Label ID="Label1" runat="server"
Text="<%$ Resources:resource, passrecovery %>"
style="font-size: small; font-family: Tahoma"></asp:Label></td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName"></asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server"
ControlToValidate="UserName" ErrorMessage="User Name is required."
ToolTip="User Name is required." ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color:Red;">
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<asp:Button ID="SubmitButton" runat="server" CommandName="Submit" Text="<%$ Resources:resource, submit %>"
ValidationGroup="PasswordRecovery1" Font-Names="tahoma"
Font-Size="X-Small" Width="80px" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</UserNameTemplate>
</asp:PasswordRecovery>
これは背後にあるコードです:
protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e)
{
SmtpClient smtp = new SmtpClient();
smtp.Send(e.Message);
}
これは web.config の smtp 設定です:
<system.net>
<mailSettings >
<smtp >
<network host="mail.domainname.com" userName="info@dominname.com" password ="password" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>