zoukankan      html  css  js  c++  java
  • C# 使用QQ邮箱发送邮件

    发送原理,把邮件发送给smtp服务器,然后再由smtp服务器发送到邮箱。

    1、微软已经帮我们封装好了发送邮件的类 MailMessage。MailMessage类构造一些邮件信息,然后通过SmtpClient进行邮件发送。

    2、还需要用到SmtpClient类进行发送邮件。SmtpClient类的意思是:允许应用程序使用简单邮件传输协议 (SMTP) 来发送电子邮件。

    3、代码

      

    static void Main(string[] args)
            {
                //实例化一个发送邮件类。
                MailMessage mailMessage = new MailMessage();
                //发件人邮箱地址,方法重载不同,可以根据需求自行选择。
                mailMessage.From = new MailAddress("123456@qq.com");
                //收件人邮箱地址。
                mailMessage.To.Add(new MailAddress("234567@qq.com"));
                //抄送人邮箱地址。
                //message.CC.Add(sender);
                //邮件标题。
                mailMessage.Subject = "发送邮件测试";
                //邮件内容。
                mailMessage.Body = "这是我给你发送的第一份邮件哦!";
                //是否支持内容为HTML。
                //mailMessage.IsBodyHtml = true;
                //实例化一个SmtpClient类。
                SmtpClient client = new SmtpClient();
                client.Port = 587;
                //在这里使用的是qq邮箱,所以是smtp.qq.com,如果你使用的是126邮箱,那么就是smtp.126.com。
                //client.Host = "smtp.163.com";
                client.Host = "smtp.qq.com";
                //使用安全加密连接(是否启用SSL)
                client.EnableSsl = true;
                //设置超时时间
                //client.Timeout = 10000;
                //不和请求一块发送。
                client.UseDefaultCredentials = false;
                //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
                client.Credentials = new NetworkCredential("123456@qq.com", "你自己的qq邮箱授权码");//szcodirtgvjgbfii
                //网易邮箱客户端授权码DJURBEKTXEWXQATX
                //client.Credentials = new NetworkCredential("liulijun3236@163.com", "ZAJDNCKWHUBHQIMY");
                try
                {
                    //发送
                    client.Send(mailMessage);
                    //发送成功
                }
                catch (Exception)//发送异常
                {
                    //发送失败
                    //System.IO.File.WriteAllText(@"C:	est.txt", e.ToString(), Encoding.UTF8);
                }
            }

    4、常见错误信息及解决办法。

      在做此功能的过程中,遇到过好几个异常信息,到最后百度了一下,总算解决了,有些新人在做的过程中,或许不知道问题出在哪了,接下来我就说说我常见的错误及解决办法。

      4.1、mail from address must be same as authorization user

        一般出这种情况的原因有两种:

        4.1.1、POP3/IMAP/SMTP未开启。

            解决办法:进入qq邮箱- - - - -》设置- - - - -》账户- - - - -》然后找到POP3/IMAP/SMTP开启即可。

         4.1.2、授权码错误。

            解决办法:进入qq邮箱- - - - -》设置- - - - -》账户- - - - -》然后找到POP3/IMAP/SMTP开POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下的生成授权码填上即可。

      4.2、Error: need EHLO and AUTH first !

         一般情况系出现这种错误原因是SmtpClient类的EnableSsl、UseDefaultCredentials属性放到了Credentials属性之下。

         解决办法:将SmtpClient类的EnableSsl、UseDefaultCredentials属性放到了Credentials属性之上。

     5、看看腾讯的官方设置说明,使用SSL,端口号465,但是如果按配置,总是提示超时。没办法,google了一把,发现端口号应该是587

    6、端口内容详细看链接  https://stackoverflow.com/questions/15796530/what-is-the-difference-between-ports-465-and-587

  • 相关阅读:
    简单分页案例
    layer弹出层
    layDate 日期与时间组件 入门
    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":解决方案
    eclipse常用快捷键
    javascript DOM编程艺术(第2版)
    webstorm破解
    Intellij IDEA搭建vue-cli项目
    颜色rgba、hsla
    文本阴影、换行、溢出
  • 原文地址:https://www.cnblogs.com/yinmu/p/13826065.html
Copyright © 2011-2022 走看看