530-5.5.1 Authentication required error, smtp
<p>here is my FULL code below,Please need help, I have been trying to send email via gmail, I get this error "530-5.5.1 Authentication required", the exception occurs in the method  called "Send()" on this line here: (see full code below), I am not using the c# library for some reason, so I need to get this to work, thanks.</p>

<pre><code> //EXCEPTION OCCURS HERE, SEE THE SEND METHOD BELOW FOR FULL CODE
  foreach (string address in to)
        {
            try
            {
                message = "RCPT TO:&lt;" + address + "&gt;\r\n";
                response = ReadLine();
                SendCommand(message);
                Console.WriteLine(response);
                if (response.Substring(0, 3) != "250")
                {
                    throw new SmtpException(response);
                }
            }

        }
   //CONSTRUCTOR
    public Smtp()
    {
        Port =465 ;
        Host = "smtp.gmail.com";
        Email = "email@gmail.com";
        Password = "xxxxxxx";
        to = new List&lt;String&gt;() { "reciever@gmail.com"};
        from = "sender@gmail.com";

    }

  //FULLE CODE
  public void Connect()
    {
        if (Client == null)
            Client = new TcpClient();

        if (!Client.Connected)
            Client.Connect(Host, Port);

        //if (IsSecure)
        //{
            SslStream secureStream =
              new SslStream(Client.GetStream());
            secureStream.AuthenticateAsClient(Host);

            ClientStream = secureStream;
            secureStream = null;
            Console.WriteLine("secure");

        //}
        //else
        //{
        //    ClientStream = Client.GetStream();
        //    Console.WriteLine("non secure");
        //}

        Writer = new StreamWriter(ClientStream);
        Reader = new StreamReader(ClientStream);

       string c= ReadLine();
       Console.WriteLine(c);

      string  message = "EHLO me";
       SendCommand(message);
       string response = ReadLine();
       Console.WriteLine(response);
       if (response.Substring(0, 3) != "250")
       {
         //  throw new SmtpException(response);
       }

       Send();
    }


   // public void 
    public void Send()
    {
        string message = "MAIL FROM:&lt;" + Email + "&gt;";
        SendCommand(message);
        string response = ReadLine();
        Console.WriteLine(response);
        if (response.Substring(0, 3) != "250")
        {
            throw new SmtpException(response);
        }
        string x = ReadLine();
        Console.WriteLine(x);

        **//EXCEPTION OCCURS HERE**
        foreach (string address in to)
        {
            try
            {
                message = "RCPT TO:&lt;" + address + "&gt;\r\n";
                response = ReadLine();
                SendCommand(message);
                Console.WriteLine(response);
                if (response.Substring(0, 3) != "250")
                {
                    throw new SmtpException(response);
                }
            }
            catch (SmtpException e)
            {
                System.Console.WriteLine("{ 0}", e.Message);
            }
        }

        message = "DATA\r\n";
        SendCommand(message);
        response = ReadLine();
        Console.WriteLine(response);
        if (response.Substring(0, 3) != "354")
        {
            throw new SmtpException(response);
        }

        message = "Subject: " + subject + "\r\n";
        foreach (string address in to)
        {
            message += "To: " + address + "\r\n";
        }
        foreach (string address in cc)
        {
            message += "Cc: " + address + "\r\n";
        }

        message += "From: " + from + "\r\n";
        if (bodyHtml.Length &gt; 0)
        {
            message += "MIME-Version: 1.0\r\n"
                + " Content-Type: text/ html;\r\n"
                + " charset=\" iso-8859-1\"\r\n";
            message += "\r\n" + bodyHtml;
        }
        else
        {
            message += "\r\n" + bodyText;
        };
        message += "\r\n.\r\n";
        SendCommand(message);
        response = ReadLine();
        Console.WriteLine(response);
        if (response.Substring(0, 3) != "250")
        {
            throw new SmtpException(response);
        }

        message = "QUIT\r\n";
        SendCommand(message);
        response = ReadLine();
        Console.WriteLine(response);
        if (response.IndexOf(" 221") == -1)
        {
            throw new SmtpException(response);
        }

    }

    public void Close()
    {
        if (Client != null)
        {
            if (Client.Connected)
                Logout();

            Client.Close();
            Client = null;
        }

        if (ClientStream != null)
        {
            ClientStream.Close();
            ClientStream = null;
        }

        if (Writer != null)
        {
            Writer.Close();
            Writer = null;
        }

        if (Reader != null)
        {
            Reader.Close();
            Reader = null;
        }

        disposed = true;
    }

    public void Dispose()
    {
        if (!disposed)
            Close();
    }

    protected void Login()
    {
        if (!IsResponseOk(SendCommand("USER " + Email)) ||
          !IsResponseOk(SendCommand("PASS " + Password)))
            throw new Exception("User/password not accepted");
    }

    protected void Logout()
    {
        SendCommand("RSET");
        //SendCommand("QUIT");
    }

    protected string SendCommand(string cmdtext)
    {
        Writer.WriteLine(cmdtext);
        Writer.Flush();

        return ReadLine();
    }

    protected string ReadLine()
    {
        return Reader.ReadLine() + "\r\n";
    }

    protected string ReadLines()
    {
        StringBuilder b = new StringBuilder();

        while (true)
        {
            string temp = ReadLine();

            if (temp == ".\r\n" || temp.IndexOf("-ERR") != -1)
                break;

            b.Append(temp);
        }

        return b.ToString();
    }

    protected static bool IsResponseOk(string response)
    {
        if (response.StartsWith("+OK"))
            return true;
        if (response.StartsWith("-ERR"))
            return false;

        throw new Exception("Cannot understand server response: " +
          response);
    }
</code></pre>
