IDE:Visual Studio 2010[C#] + .NET 4.0框架
引用.NET 4.0框架的System.Net.Mail命名空间开发发送邮件的程序。发送方:QQ邮箱 接收方:163邮箱基于上述开发平台,以下列举了三种通过QQ邮箱的SMTP服务器发送QQ邮件至163邮箱提示“发送邮件失败”可能的解决方案。
1.QQ邮箱的SMTP服务是否正常。可取消SMTP服务后再重新勾选启用;
2.是否由于该QQ账号向该163邮箱一段时间内发送了过多的邮件而被163邮箱认为是垃圾邮件。可尝试设置163邮箱反垃圾选项中的白名单。3.是否由于该QQ账号向该163邮箱一段时间内发送了过多的邮件而使得QQ邮箱有一定的“自卫行为”,即QQ认为该账号处于非正常状态继而封锁该账号(或该账号的IP/IP段)。取消SMTP服务后再重新勾选启用或尝试用该账号在异地发送邮件,可能有助于解除QQ邮箱对该账号的封锁(有待测试。如测试,请谨慎为之。对由于测试此项可能性而产生的账号安全风险本人概不负责)。附通过QQ邮箱的SMTP服务器成功发送QQ邮件至163邮箱的代码(截至2014年3月19号仍可发送成功):
private void btnSend_Click(object sender, System.EventArgs e) { string QQNum = txtQQ.Text + "@qq.com" ; string QQPwd = txtPwd.Text; string wy = ""; MailAddress from = new MailAddress(QQNum); MailAddress to = new MailAddress(wy); MailMessage mail = new MailMessage(from, to); mail.Subject = "主题"; mail.Body = "内容"; mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess; mail.Sender = new MailAddress(QQNum); mail.BodyEncoding = Encoding.UTF8; mail.IsBodyHtml = false; SmtpClient client = new SmtpClient("smtp.exmail.qq.com"); client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential(QQNum, QQPwd); client.DeliveryMethod = SmtpDeliveryMethod.Network; try { client.Send(mail); } catch(Exception ex) { MessageBox.Show(ex.Message); } }