通过QQ邮箱的SMTP服务器发送QQ邮件至163邮箱提示“发送邮件失败”的解决方案(三种可能性,不妨一试)

时间:2024-02-19 15:59:43

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 = "xxxxx@163.com";
            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);
            }
        }