Ответ сервера: 5.7.0 Требуется аутентификация. Узнайте больше на - PullRequest
0 голосов
/ 07 января 2020

Я попытался запустить этот код, и он показывает эту ошибку. Это пароль сброса, где пользователь должен ввести адрес электронной почты. Когда адрес электронной почты действителен, администратор отправит пользователю ссылку для сброса пароля. enter image description here

    protected void btnResetPwd_Click(object sender, EventArgs e)
    {
        string emailAddress = txtEmail.Text;

        User u = db.Users.Single(x => x.EmailAddress == emailAddress);


        if (u != null)
        {
            lblMessage.ForeColor = System.Drawing.Color.LimeGreen;
            MailMessage mailMessage = new MailMessage();

            StringBuilder sbEmailBody = new StringBuilder();
            sbEmailBody.Append("Dear " + u.Name + ",<br/><br/>");
            sbEmailBody.Append("Please click on the following link to reset your password");
            sbEmailBody.Append("<br/>"); sbEmailBody.Append("http://localhost/Assignment/Registration/ChangePwd.aspx?uid=" +u.Id);
            sbEmailBody.Append("<br/><br/>");
            sbEmailBody.Append("<b>Pragim Technologies</b>");

            mailMessage.IsBodyHtml = true;

            mailMessage.Body = sbEmailBody.ToString();
            mailMessage.Subject = "Reset Your Password";
            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);

            smtpClient.Credentials = new System.Net.NetworkCredential()
            {
                UserName = "YourEmail@gmail.com",
                Password = "YourPassword"
            };
            string to = u.EmailAddress;
            string from = "potato@gmail.com";

            smtpClient.EnableSsl = true;

            mailMessage.From = new MailAddress(from);
            mailMessage.To.Add(to);
            smtpClient.Send(mailMessage);
            smtpClient.UseDefaultCredentials = false;

            lblMessage.Text = "An email with instructions to reset your password is sent to your registered email";


        }
        else
        {
            lblMessage.ForeColor = System.Drawing.Color.Red;
            lblMessage.Text = "Email Address not found!";
        }

    }

А это мой web.config

        <system.net>
        <mailSettings>
        <smtp from="Admin &lt;potato@gmail.com&gt;">
        <network host="smt.gmail.com"
                 port="587"
             enableSsl="true"
             userName="potato@gmail.com"
             password="password"/>
              </smtp>
             </mailSettings>
             </system.net>

1 Ответ

0 голосов
/ 05 февраля 2020

Может показаться, что с вашим кодом все в порядке, но gmail настроен неправильно.

Для начала я бы попытался изменить настройки вашей учетной записи gmail, чтобы использовать «Менее безопасный доступ к приложению» - см. https://myaccount.google.com/lesssecureapps и посмотрите, работает ли это.

Если это работает, то вы можете попытаться получить доступ к gmail более безопасным способом - возможно, включив двухфакторную аутентификацию и используя пароли приложений - см. https://support.google.com/accounts/answer/185833?hl=en

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...