zoukankan      html  css  js  c++  java
  • C#QQ邮箱发送消息

    QQ邮箱发送消息

    在写代码之前首先我们要获取授权码。

    打开我们的QQ邮箱=》点开设置=》点开账户=》我们就可以看到POP3/IMAP......服务

    下面有各种服务,选择你要开启的服务,本人就开了第一了服务,完成后它会给你个授权码,下面我们就会用到这个授权码

    首先我们在appsettings.json写配置。

    "QQEmailConfig": {
    //发件人
    "From": { "email": "自己的QQ邮箱", "displayname": "tomorrow得到系统通知"//显示的名称 }, "AuthorizationCode": "自己的授权码",
    //收件人
    "Addressee": [ { "email": "张三的QQ邮箱", "displayname": "张三" }, { "email": "李四的QQ邮箱", "displayname": "李四" } ], "Subject": "tomorrow的系统通知123",//统一标题 "Host": "smtp.qq.com",//主机 "Port": 587,//端口 "EnableSsl": true //是否加密 },

    再写个EmailConfig类放在Models文件夹中:

     public class EmailConfig
        {
            public class Config
            {
                public string email { get; set; }
                public string displayname { get; set; }
            }
            public Config From { get; set; }
            public Config[] Addressee { get; set; }
            public string AuthorizationCode { get; set; }
            public string Subject { get; set; }
            public string Host { get; set; }
            public int Port { get; set; }
            public bool EnableSsl { get; set; }
    
        }

    最后就是写代码的时间了:

    public async Task<IActionResult> SendQQEmail()
            {
    //读取配置文件 EmailConfig emailConfig
    = _configuration.GetSection("QQEmailConfig").Get<EmailConfig>();
    //实例化对象
    using(MailMessage mail=new MailMessage()) {
    //发件人 mail.From
    = new MailAddress(emailConfig.From.email, emailConfig.From.displayname);
    //收件人
    foreach (var item in emailConfig.Addressee) { mail.To.Add(new MailAddress(item.email, item.displayname)); }
    //标题 mail.Subject
    = emailConfig.Subject;
    //内容 mail.Body
    = "<b>我变了</b>没有变";
    //内容是否为html渲染 mail.IsBodyHtml
    = true;
    //标题编码 mail.SubjectEncoding
    = Encoding.UTF8;
    //内容编码 mail.BodyEncoding
    = Encoding.UTF8;
    //附件 mail.Attachments.Add(
    new Attachment(@"C:UsersAdministratorPicturesSaved Pictures img.jpg"));
    //smtp客户端
    using(SmtpClient client=new SmtpClient()) {
    //主机 client.Host
    = emailConfig.Host;
    //端口 client.Port
    = emailConfig.Port;
    //凭证(发件人email 授权) client.Credentials
    = new NetworkCredential(emailConfig.From.email, emailConfig.AuthorizationCode);
    //是否加密 client.EnableSsl
    = emailConfig.EnableSsl;
    //发送邮件
    await client.SendMailAsync(mail); } }; return new JsonResult(new { Code=200, message="邮件完成,请注意查收", data = emailConfig.Addressee }); }

    最后我们就完成了。

    如果你出现appsettings.json乱码的情况。

    点开工具=》自定义=》命令=》添加命令=》文件=》找到高级保存选择点击=》关闭=》点开左上方的高级保存设置=》选择Unicode (UTF-8 with signature)-Codepage 65001 这个就行

  • 相关阅读:
    javascript ajax 脚本跨域调用全解析
    [转载]linux sed命令详解
    perl随记(1)
    TCL随记(2)
    TCL随记(1)
    C Shell 中的特殊变量
    异步FIFO为什么用格雷码
    VMM学习-vmm_log
    UVM基础之---Command-line Processor
    Verification Mind Games---how to think like a verifier像验证工程师一样思考
  • 原文地址:https://www.cnblogs.com/mvpbest/p/13359061.html
Copyright © 2011-2022 走看看