繁体   English   中英

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

[英]Sending forgot password of user in an email works successfully in local machine but fails on server using c# asp.net

我正在使用 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;
        }

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

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

几天前我遇到了同样的问题。 从您的代码中删除 smtp.Port = 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM