Microsoft.Graph 使用(Oauth 2.0)客户端凭据流发送邮件

先上代码

 var scopes = new[] { "https://graph.microsoft.com/.default" };
                var tenantId = tenant_Id; //创建应用程序的APPID
                var clientId = client_Id;// 租户ID
                var clientSecret = client_Secret; //客户端秘钥 (刚创建密码的时候会显示,离开页面会隐藏)

                //引用Azure.Identity
                var options = new TokenCredentialOptions
                {
                    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
                };
                var clientSecretCredential = new ClientSecretCredential(
                    tenantId, clientId, clientSecret, options);

                //引用 Microsoft.Graph

                GraphServiceClient graphClient = new 
                GraphServiceClient(clientSecretCredential, scopes);

                //用自带的对象发送邮件

           Microsoft.Graph.Message Mgmessage = new Microsoft.Graph.Message();
                //标题
                Mgmessage.Subject = emailMessage.Subject;
                //邮件内容类型
                Mgmessage.Body.ContentType = Microsoft.Graph.BodyType.Html;

              //邮件内容

                  Mgmessage.Body.Content = Body.Text;
                //   邮件的收件人。。
                Mgmessage.ToRecipients = toRecipients;
                //邮件的抄送收件人。
                Mgmessage.CcRecipients = ccRecipients2;
                //    邮件的密件抄送收件人。
                Mgmessage.BccRecipients = bccRecipients3;
                //是否存在附件
                Mgmessage.HasAttachments = filef;
                //附件
                Mgmessage.Attachments = attachments; 

          await  graphClient.Users[users_Email].//["1234.@163.com"]
                            SendMail(Mgmessage,false).Request().PostAsync(); 

graphClient,有两种发送方式me 和Users ,无用户交互的需要用USers方式

users_Email 应该是应用程序所在的组织的账号,因为要通过组织的账号发邮件,因为这个users_Email卡了很久,拿过APPID和租户ID还有其他能试的都试过,都发不出去,然后根据客户发来的邮箱试了一下

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值