【问题标题】:The server response was: 5.7.0 Authentication Required in C# web hosting website服务器响应为:C# Web 托管网站中需要 5.7.0 身份验证
【发布时间】:2020-05-31 05:31:16
【问题描述】:

最近我正在通过 c# 编码发送邮件,我尝试在 Visual Studio 平台上通过 c# 编码发送邮件,它在我的 Visual Studio 本地主机上工作得很好。但是当我在 myASP.NET 或 Somee.com 等其他托管网站上运行相同的代码时,代码会出错。

类似错误(如果我使用 smtp.gmail.com 则类似错误

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:需要 5.7.0 身份验证。了解更多信息)

并且(如果我使用 smtp.somee.com 则会生成类似的错误

发送邮件失败。)

在c#中发送邮件的代码是,

String username = "";
      string password = "";
      OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["cstring"].ConnectionString);
      OleDbCommand cmd = new OleDbCommand("select umail, lpwd from uregister where umail=@email", con);
      cmd.Parameters.AddWithValue("email", txtEmail.Text);
      con.Open();
      using(OleDbDataReader sdr = cmd.ExecuteReader()) {

          if (sdr.Read()) {
              username = sdr["umail"].ToString();
              password = sdr["lpwd"].ToString();

          }

      }
      con.Close();
         if (!string.IsNullOrEmpty(password)) {

            MailMessage Msg = new MailMessage();
              // Sender e-mail address.
              Msg.From = new MailAddress(txtEmail.Text);
              // Recipient e-mail address.
              Msg.To.Add(txtEmail.Text);
              Msg.Subject = "Your Password Details";
              Msg.Body = ("Your Username is:" + username + "<br/><br/>" + "Your Password is:" + password);
              Msg.IsBodyHtml = true;
              // your remote SMTP server IP.
               SmtpClient Smtp = new SmtpClient();
              Smtp.Host = "";
             Smtp.Port = 587;
            NetworkCredential ntwd = new NetworkCredential();
                    ntwd.UserName = "xyz@gmail.com"; //Your Email ID
          ntwd.Password = "xyz123."; // Your Password
            Smtp.UseDefaultCredentials = false;
          Smtp.Credentials = ntwd;

          Smtp.EnableSsl = true;
          Smtp.Send(Msg);

              lbltxt.Text = "Your Password Details Sent to your mail.";
              // Clear the textbox valuess
              txtEmail.Text = "";
          }
          else
          {
              lbltxt.Text = "The Email you entered not exists.";
          }

此代码不适用于托管站点 somee.com/myASP.NET。所以请让我知道这段代码有什么问题..

【问题讨论】:

  • 您需要提供您的邮件服务器 - 然后检查邮件服务器上的问题所在。也许您需要联系您的提供商寻求帮助 - 无论如何,信息非常明确。
  • 这是正确的Smtp.Host = ""; 吗?你没有设置主机?

标签: c# asp.net asp.net-core c#-3.0 c#-2.0


【解决方案1】:

在您的情况下,您应该根据域策略提供强密码。

【讨论】:

  • 您无法知道域策略 - 并且您不知道发送的密码是什么。
猜你喜欢
  • 2020-04-25
  • 2010-11-17
  • 2020-04-12
  • 2021-01-06
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 2013-09-01
相关资源
最近更新 更多