• .net core 发送邮件


    在.net core2.0以上版本中 发送所用到的API与.net framework一致。1.0版本好像有差别,好在高版本解决了这个问题。

    为了方便查看效果,以控制台程序为例。 邮箱服务器以现在比较大众化QQ邮箱为例

    1.获取QQ邮箱的授权码

    在使用QQ邮箱发送邮件时,需要额外的一个授权码。不同于我们平时所用的登录密码,是在开启SMTP服务之后生成的一个密码。它是用于登录第三方客户端的专用密码。

    步骤:

    1.1 进入QQ邮箱首页,在最上方点击 设置 按钮,进入下一页面

    1.2 点击 账户 选项卡 ,划到大概中间部分,有一个服务选项区。经实验开启前两个就可以了。

    1.3 点击下方的 生成授权码,在开启服务之后会自动生成一次。这一步如果绑定了密保,会先进行一次身份验证。验证之后会发放一个授权码。这个授权码,在程序里会用到。

    2. 代码实现

    在拿到授权码之后就可以在代码实现功能了

    2.1 创建控制台项目,代码如下。 示例是用我的QQ邮箱给我的Gmail邮箱发送一封测试邮件。

    static void Main(string[] args)
            {
    
                MailMessage mailMsg = new MailMessage();//实例化对象
                mailMsg.From = new MailAddress("923974733@qq.com", "季某人");//源邮件地址和发件人
                mailMsg.To.Add(new MailAddress("xiaomaprincess@gmail.com"));//收件人地址
                mailMsg.Subject = "邮件发送测试";//发送邮件的标题
                StringBuilder sb = new StringBuilder();
                sb.Append("测试测试测试测试");
                sb.Append("嘿嘿");
                mailMsg.Body = sb.ToString();//发送邮件的内容
                //指定smtp服务地址(根据发件人邮箱指定对应SMTP服务器地址)
                SmtpClient client = new SmtpClient();//格式:smtp.126.com  smtp.164.com
                client.Host = "smtp.qq.com";
                //要用587端口
                client.Port = 587;//端口
                //加密
                client.EnableSsl = true;
                //通过用户名和密码验证发件人身份
                client.Credentials = new NetworkCredential("923974733@qq.com", "xxxxxxxxxxxxxx"); // 
                //发送邮件
                try
                {
                    client.Send(mailMsg);
                }
                catch (SmtpException ex)
                {
    
                }
                Console.WriteLine("邮件已发送,请注意查收!");
                Console.ReadKey();
    
                
    
            }

    2.2 启动程序: 被告知已发送成功

     2.3 打开Gmail确认是否发送了邮件

    成功接收!

  • 相关阅读:
    Quick Sort
    Binary Search
    trollcave解题
    Openvas简介
    SMB扫描-Server Message Block 协议、nmap
    漏洞基本概念
    防火墙识别、负载均衡识别、waf识别
    Centos7下部署Python项目
    Python-Redis数据类型操作
    MySQL的事务隔离级别
  • 原文地址:https://www.cnblogs.com/dongh/p/10868865.html
Copyright © 2020-2023  润新知