question

Aishwaryashingre-5257 avatar image
0 Votes"
Aishwaryashingre-5257 asked JackJJun-MSFT edited

System.Net.Mail.SmtpException: 'Failure sending mail.'

I am trying to make a simple website but on reset password page after typing any mail address and clicking on reset password button I am getting a error saying

System.Net.Mail.SmtpException: 'Failure sending mail.'

Inner Exception
IOException: Unable to read data from the transport connection: net_io_connectionclosed.


Here is my code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Net;
using System.Net.Mail;
using System.Drawing;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Threading;


namespace ARTIst_Sketch_Work
{
public partial class ForgotPassword : System.Web.UI.Page
{

     protected void Page_Load(object sender, EventArgs e)
     {

     }

     protected void Button1_Click(object sender, EventArgs e)
     {

         string Username = string.Empty;
         string Password = string.Empty;
         string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
         using (SqlConnection con = new SqlConnection(constr))
         {
             using (SqlCommand cmd = new SqlCommand("SELECT Username, Password FROM [Table] WHERE [E-mail] = @Email"))
             {
                 cmd.Parameters.AddWithValue("@Email", TextBoxmail.Text.Trim());
                 cmd.Connection = con;
                 con.Open();
                 using (SqlDataReader sdr = cmd.ExecuteReader())
                 {
                     if (sdr.Read())
                     {
                         Username = sdr["Username"].ToString();
                         Password = sdr["Password"].ToString();
                     }
                 }
                 con.Close();
             }
         }
         if (!string.IsNullOrEmpty(Password))
         {
             MailMessage mm = new MailMessage("sender@gmail.com", TextBoxmail.Text.Trim())
             {
                 Subject = "Password Recovery",
                 Body = string.Format("Hi {0},<br /><br />Your password is {1}.<br /><br />Thank You.", Username, Password),
                 IsBodyHtml = true
             };
             SmtpClient smtp = new SmtpClient
             {
                 Host = "smtp.gmail.com",
                 EnableSsl = true
             };
             NetworkCredential NetworkCred = new NetworkCredential
             {
                 UserName = "sender@gmail.com",
                 Password = "<Password>"
             };
             smtp.UseDefaultCredentials = true;
             smtp.Credentials = NetworkCred;
             smtp.Port = 587;
             smtp.Send(mm);
             lblMessage.ForeColor = Color.Green;
             lblMessage.Text = "Password has been sent to your email address.";
         }
         else
         {
             lblMessage.ForeColor = Color.Red;
             lblMessage.Text = "This email address does not match our records.";
         }

     }
 }

}




The exception pops at :

smtp.Send(mm);


Any help will be appreciated

sql-server-generaldotnet-csharp
· 5
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.


Maybe UseDefaultCredentials must be set to false?


1 Vote 1 ·

Have you tried turning on less secure apps for gmail?

https://myaccount.google.com/lesssecureapps

1 Vote 1 ·

Thank you its working now

0 Votes 0 ·
JackJJun-MSFT avatar image JackJJun-MSFT Aishwaryashingre-5257 ·

@Aishwaryashingre-5257, which solution works for you? I will convert the comment to answer.

0 Votes 0 ·

0 Answers