2012-06-13 3 views
2

Я хотел восстановить пароль, используя элемент управления PasswordRecovery в asp.net. Но когда я нажал кнопку отправки. У меня есть это сообщение:Как настроить параметры smtp?

Плохая последовательность команд. Ответ сервера: Этот почтовый сервер требует аутентификации при попытке отправить на нелокальный адрес электронной почты. Проверьте настройки почтового клиента или обратитесь к администратору, чтобы убедиться, что домен или адрес определены для этого сервера. . это мой HTML-код:

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server" 
      style="font-family: Tahoma; font-size: small" 
      onsendingmail="PasswordRecovery1_SendingMail" > 
      <MailDefinition BodyFileName="../User Pages/RecoveryPass.htm" From="[email protected]" 
      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"> 
            &nbsp;</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); 
    } 

и это настройки SMTP в web.config :

<system.net> 
    <mailSettings > 
     <smtp > 
     <network host="mail.domainname.com" userName="[email protected]" password ="password" defaultCredentials="false"/> 
     </smtp> 
      </mailSettings> 
    </system.net> 

ответ

0

DefaultCredentials должен быть установлен на true и должен явно добавить учетные данные клиенту.

SmtpClient client = new SmtpClient(server, port); 
     // Credentials are necessary if the server requires the client 
     // to authenticate before it will send e-mail on the client's behalf. 
     client.Credentials = CredentialCache.DefaultNetworkCredentials; 
1

Установите ваш credentials для учетной записи электронной почты, скажем, вы используете ваш Gmail счет, чтобы отправить электронную почту, так, вы должны установить credentials (username and password) ваши smtpClient object.

Ниже приводится пример ::

MailMessage m = new MailMessage(); 
SmtpClient sc = new SmtpClient(); 

MailMessage помогает нам создать почту и SmtpClient позволяет отправлять почту в получателе.

Примечание: следующий код настроен на отправку почты с GMAIL счет ..

m.From = new MailAddress("[email protected]", "Display name"); 
m.To.Add(new MailAddress("[email protected]", "Display name To")); 
m.Subject = "Test"; 
m.Body = "This is a Test Mail"; 
sc.Host = "smtp.gmail.com"; 
sc.Port = 587; 
sc.Credentials = new System.Net.NetworkCredential("[email protected]", "password of from"); 
sc.EnableSsl = true; // runtime encrypt the SMTP communications using SSL 
sc.Send(m); 
+0

это Арент решение моей проблемы –

Смежные вопросы