在电子邮件中发送用户忘记的密码在本地机器上成功,但在使用c#asp.net的服务器上失败

本文关键字:成功 失败 服务器 net c#asp 电子邮件 用户 密码 忘记 机器 | 更新日期: 2023-09-27 18:21:06

我正在使用C#在asp.net中开发一个小型应用程序,如果用户忘记了密码,我想在单击忘记密码按钮时将密码从数据库发送到用户的邮件中。我成功地在电子邮件中发送了密码,但在本地机器中。我在本地机器上使用的设置,我也在服务器上使用过。但如果我在服务器上尝试,我会遇到一个错误,上面写着"发送电子邮件失败"。有人能告诉我我在哪里犯了错误吗?如果必须在服务器上工作,该怎么办。

以下是我的代码:

try
        {
                if (ds.Tables[0].Rows.Count > 0)
                 {
                    MailMessage Msg = new MailMessage();
                    Msg.From = new MailAddress("mymail@gmail.com");
                    Msg.To.Add(new MailAddress(txtboxforgotemail.Text));
                    Msg.Subject = "Forgot Password :";
                    Msg.Body = "Hi, Dear '" + ds.Tables[0].Rows[0]["username"] + "' , your password is:" + ds.Tables[0].Rows[0]["password"] + "";
                    Msg.IsBodyHtml = true;
                    SmtpClient smtp = new SmtpClient();
                    smtp.Host = "smtp.gmail.com";
                    smtp.UseDefaultCredentials = false;
                    smtp.Port = 587;
                    smtp.Credentials = new System.Net.NetworkCredential ("mymail@gmail.com","mypassword");
                    smtp.Send(Msg);
                    lblforgotemail.Text = "Your Password Details Sent to your mail";
                    txtboxforgotemail.Text = "";
             }
             else
                    {
                        lblforgotemail.Text = "The email you entered does not exist.";
                    }  
        }
        catch (Exception ex)
        {
            txtboxforgotemail.Text = "";
            lblforgotemail.Text = ex.Message;
        }

在电子邮件中发送用户忘记的密码在本地机器上成功,但在使用c#asp.net的服务器上失败

我在实时环境中使用了完全相同的东西,唯一的区别是我在smtp类上也设置了以下属性:

smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

几天前我也遇到了同样的问题。删除smtp。端口=587从您的代码,它将工作

 try
        {
            string admin_email = "youremail"
            string admin_emailpwd = "your pwd"
            MailMessage mail = new MailMessage();
            mail.To.Add(SendTo);
            mail.From = new MailAddress(admin_email);
            mail.Subject = Subject;
            mail.Body = Body;
            mail.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "SMTP.gmail.com";
          //  smtp.Port = 587;
            smtp.Credentials = new System.Net.NetworkCredential(admin_email, admin_emailpwd);
            smtp.EnableSsl = true;
            smtp.Send(mail);
        }
        catch
        {
            return false;
        }
        return true;
    }

这是我的代码,它也能工作。(注意:我已经评论了smtp.port)