As I made the above comment, you are confusing with regard to the Sender (Who is sending the email) and Recipient (Who will receive the email), in the case the email that is informed in the field txtEmail, I've adjusted your code and made the comments for you to understand better:
protected void btnEnviar_Click(object sender, EventArgs e)
{
//E-mail do destinatário (Quem Receberá o e-mail
string desEmail = txtEmail.Text; //Recebe o valor informado no campo no Form
//Remetente é quem envia o e-mail (Deve ser o mesmo do seu servidor de SMTP) no caso gmail
string remetenteEmail = "[email protected]";//O e-mail do remetente
MailMessage mail = new MailMessage();
//Adiciona o destinatário
mail.To.Add(desEmail);
//Adiciona o remetente
mail.From = new MailAddress(remetenteEmail, txtNome.Text, System.Text.Encoding.UTF8);
//Assunto
mail.Subject = txtAssunto.Text;
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.Body = txtMensagem.Text;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.High; //Prioridade do E-Mail
//SMTP é o servidor de e-mail que irá enviar o e-mail
SmtpClient client = new SmtpClient();
//Aqui a credencial tem que ser de quem esta enviando, no caso o Remetente
client.Credentials = new System.Net.NetworkCredential(remetenteEmail, "123456");
client.Port = 587; // Esta porta é a utilizada pelo Gmail para envio
client.Host = "smtp.gmail.com"; //Definindo o provedor que irá disparar o e-mail
client.EnableSsl = true; //Gmail trabalha com Server Secured Layer
try
{
client.Send(mail);
lblMensagem.Text = "Envio do E-mail com sucesso";
lblMensagem.Visible = true;
}
catch (Exception ex)
{
lblMensagem.Text = "Ocorreu um erro ao enviar:" + ex.Message;
lblMensagem.Visible = true;
}
}