C# 创建表单供用户发送电子邮件或gmail

C# 创建表单供用户发送电子邮件或gmail,c#,winforms,visual-studio,email,mailmessage,C#,Winforms,Visual Studio,Email,Mailmessage,我创建了一个表单,其中包括一个发送按钮和一个richtextbox、用户名和密码以及From和To文本框 这是“发送”按钮中的代码,但不幸的是,当我填写文本框并单击“发送”按钮时,程序将关闭 private void btnSend_Click(object sender, EventArgs e) { MailMessage mail = new MailMessage(from.Text, to.Text, Subject.Text, body.Text); //

我创建了一个表单,其中包括一个发送按钮和一个richtextbox、用户名和密码以及From和To文本框

这是“发送”按钮中的代码,但不幸的是,当我填写文本框并单击“发送”按钮时,程序将关闭

 private void btnSend_Click(object sender, EventArgs e)
 {
     MailMessage mail = new MailMessage(from.Text, to.Text, Subject.Text, body.Text);
      // SmtoServer = smtp.company.com; Ex: Gmail . smtp.gmail.com | yahoo - smtp.yahoo.com
      SmtpClient client = new SmtpClient(smtp.Text);
      client.Port = 587;
      client.Credentials = new System.Net.NetworkCredential(username.Text,password.Text);
      client.EnableSsl = true;
      client.Send(mail);
      MessageBox.Show("Your mail has been sent!\n Thanks for your email",
                      "Success", MessageBoxButtons.OK);

 }
更新 我尝试了你说的一切,我已经看了Youtube视频,但编译器在第9行显示了错误:

client.Send(mail);
这就是错误:

System.dll中发生类型为“System.Net.Mail.SmtpException”的未处理异常

其他信息:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证


您应该包括与此问题相关的其余代码。要做的第一件事是添加错误检查!如果它仍然关闭,请使用调试器逐步检查代码,以查看哪一行是问题所在..-我用我的数据尝试了你的代码,效果很好。请注意,您可能希望将cient的超时时间减少到几秒钟,这样您就不必等待太长时间了。1)您确实应该添加错误处理,以便程序能够正常运行,而不是抛出异常。无论如何,你都需要它!2) 一定要调查所有问题,而不仅仅是公认的答案@谢谢兄弟。这是我的问题,我的2个验证步骤是在我的gmail帐户启用,我关闭并解决我的问题。感谢您的链接和帮助。