SMTP服务器需要安全连接或客户端未经过身份validation – 仍然无法正常工作

我收到了上述错误。 我看过在线解决方案,我似乎已经做了所有必要但我仍然得到它。 我已经包含了Enablessl = true; 交付方式是网络,我提供了凭据。 我调试了它,用户名和密码似乎是正确的。

using System; using System.Net; using System.Net.Mail; using System.Windows.Forms; namespace SendMail { public partial class MainWindow : Form { #region Private variables private MailMessage _message = new MailMessage(); private EmailSender sender = EmailSender.GetInstance(); private SmtpClient _smtpClient = new SmtpClient(); #endregion public MainWindow() { InitializeComponent(); } private void PrepareMailMessage() { // Set the FROM address _message.From = new MailAddress(tbFromAddr.ToString().Trim()); // Set the TO address _message.To.Add(new MailAddress(tbToAddr.ToString().Trim())); // Set the SUBJECT _message.Subject = tbSubject.ToString(); _message.IsBodyHtml = false; _message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; _message.Priority = MailPriority.High; _message.SubjectEncoding = System.Text.Encoding.UTF8; _message.BodyEncoding = System.Text.Encoding.UTF8; } private void PrepareServer() { _smtpClient.Host = "smtp.gmail.com"; _smtpClient.Port = 587; _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; _smtpClient.UseDefaultCredentials = false; _smtpClient.Credentials = new NetworkCredential(tbFromAddr.ToString().Trim(), tbPassword.ToString().Trim()); _smtpClient.EnableSsl = true; } private void PrepareSender() { sender.Message = _message; sender.smtpClient = _smtpClient; } private void btnSend_Click(object sender, EventArgs e) { PrepareMailMessage(); PrepareServer(); PrepareSender(); //this.sender.Send(); _smtpClient.Send(_message); } } } 

我检查了你的代码,它对我有用。 但是,我不确定PrepareSender()方法的用途。 我在PrepareMailMessage()上包含了消息体( _message.Body PrepareMailMessage()

您是否尝试过使用默认凭据?

 _smtpClient.UseDefaultCredentials = true