zoukankan      html  css  js  c++  java
  • C# QQ & 163 邮件发送

           这篇文章的目的并不是说明如果进行右键的发送,因为在.net 坝坝的怀抱下邮件发送的功能实现并不会很难,当然邮件发送的代码,还是会贴上的,昨天在写一个邮件发送的功能,我直接找到了原来的代码,想着直接就可以运行了,但是真正情况并非如此,遇到了很多报错,这里做个说明。

           测试中出现了如下的报错:

            163 

             1.不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp14,EsCowACHqdDTBdBay0PiEw--.39304S3 1523582420

           2.邮箱不可用。 服务器响应为:User has no permission

             3.事务失败。 服务器响应为:DT:SPM 163 smtp13,EcCowAAHf28_ENBawarsDQ--.43148S3 1523585089,please see http://mail.163.com/help/help_spam_16.htm?ip=xx.xx.xx.xx&hostid=smtp13&time=1523585089

             QQ 

             通过QQ发邮件基本没有什么大的问题,可以成功,当然这一切的大的问题都是由于现在的qq和163都开始使用授权码,what? 什么意思了,意思就是原来通过邮箱帐号,密码然后发送右键的方式用不了了,所以这也就是为什么我原先的代码用不了。

             如果开启所谓的授权码呢?

             163:

             

             163现在开启POP3/SMTP服务的时候已经做了说明,如上“请使用授权码登录第三方右键客户端”

              

              如上开启授权码即可,请牢记自己的授权码

              QQ:

              

               如上,qq的smtp服务开启与获取授权码

               下面开始贴发送的代码:            

        public class EmalHelper
        {
            /// <summary>
            /// SMTP实例
            /// </summary>
            static System.Net.Mail.SmtpClient client = null;
    
            /// <summary>
            /// 发送信息
            /// </summary>
            /// <param name="Receiver">邮件接收人</param>
            /// <param name="Subject">邮件主题</param>
            /// <param name="content">邮件内容</param>    
            public static void SendEmail(string Receiver, string Subject, string content)
            {
                if (string.IsNullOrEmpty(Receiver) || string.IsNullOrEmpty(Subject)
                    || string.IsNullOrEmpty(content))
                {
                    throw new ArgumentNullException("SendEmail参数空异常!");
                }
                if (client == null)
                {
                    try
                    {
                        //163发送配置                    
                        client = new System.Net.Mail.SmtpClient();
                        client.Host = "smtp.163.com";
                        client.Port = 25;
                        client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                        client.EnableSsl = true;
                        client.UseDefaultCredentials = true;
    
    
                        //qq发送配置的参数//切EnableSsl必须设置为true  
                        //client = new System.Net.Mail.SmtpClient();
                        //client.Host = "smtp.qq.com";
                        //client.Port = 25;
                        //client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                        //client.EnableSsl = true;
                        //client.UseDefaultCredentials = false;
    
                        client.Credentials = new System.Net.NetworkCredential("邮箱帐号@xx.com", "授权码");
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                try
                {
                    System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
                    Message.SubjectEncoding = System.Text.Encoding.UTF8;
                    Message.BodyEncoding = System.Text.Encoding.UTF8;
                    Message.Priority = System.Net.Mail.MailPriority.High;
    
                    Message.From = new System.Net.Mail.MailAddress("邮箱帐号@xx.com", "张三");
                    //添加邮件接收人地址
                    string[] receivers = Receiver.Split(new char[] { ',' });
                    Array.ForEach(receivers.ToArray(), ToMail => { Message.To.Add(ToMail); });
    
                    Message.Subject = Subject;
                    Message.Body = content;
                    Message.IsBodyHtml = true;
                    client.Send(Message);                
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }

     上面的邮箱帐号正常输入,后面必须填写授权码,否则就会提示, 不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp13,EcCowACXmXrVFtBa20jvDQ--.25857S3 1523586773

      如果用户没有开启授权码,还是原先的用户密码的方式,邮箱不可用。 服务器响应为:User has no permission

      服务器响应为:DT:SPM 163 smtp13,EcCowAAHf28_ENBawarsDQ--.43148S3 1523585089,please see http://mail.163.com/help/help_spam_16.htm?ip=xx.xx.xx.xx&hostid=smtp13&time=1523585089 这是第三个错误,因为邮件被拦截导致,你的右键标题和内容要正规,我做了个测试 右键的标题为 “title” 报错,改为“工作汇报”,邮件发送成功,而且这个错误还跟天气有关,开个玩笑,有时候就是莫名其妙的出现,一会就好了

  • 相关阅读:
    设计模式之单例模式
    Java反射之调用内部类
    Java反射之修改常量值
    myBatis之入门示例
    eclipse创建maven工程
    java核心卷轴之集合
    java核心卷轴之泛型程序设计
    sublime常用快捷键
    sublime使用package control安装插件
    sublime使用技巧之添加到右键菜单、集成VI
  • 原文地址:https://www.cnblogs.com/tiaoshuidenong/p/8818848.html
Copyright © 2011-2022 走看看