首页 > 编程语言 >使用 Microsoft Graph oFFICE365 sendmail C#

使用 Microsoft Graph oFFICE365 sendmail C#

时间:2024-01-11 14:13:17浏览次数:37  
标签:sendmail C# Graph using var new clientSecretCredential Microsoft

using Microsoft.Graph;
using Azure.Identity;
using Microsoft.Graph.Models;

var scopes = new[] { "https://graph.microsoft.com/.default" };

var tenantId = "{tenant id}";

// Values from app registration
var clientId = "{client id}";
var clientSecret = "{client secret}";

// using Azure.Identity;
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};

// https://learn.microsoft.com/dotnet/api/azure.identity.clientsecretcredential
var clientSecretCredential = new ClientSecretCredential(
tenantId, clientId, clientSecret, options);

var accessToken = await clientSecretCredential.GetTokenAsync(new Azure.Core.TokenRequestContext(scopes) { });

Console.WriteLine(accessToken.Token);

var graphClient = new GraphServiceClient(clientSecretCredential, scopes);

var requestBody = new Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody
{
Message = new Message
{
Subject = "Meet for lunch?",
Body = new ItemBody
{
ContentType = BodyType.Text,
Content = "The new cafeteria is open.",
},
ToRecipients = new List
{
new Recipient
{
EmailAddress = new EmailAddress
{
Address = "xxxx@xxxxxxxxxxx",
},
},
},
},
SaveToSentItems = false,
};

await graphClient.Users["{user id}"].SendMail.PostAsync(requestBody);

标签:sendmail,C#,Graph,using,var,new,clientSecretCredential,Microsoft
From: https://www.cnblogs.com/mqingqing123/p/17958471

相关文章

  • XCODE IOS 静态链接库替换升级
    XCODE 版本15.2. 一个很久需求没更新的IOS应用,近来有新需求要开发。拉下代码运行,出现了个BAD_ACCESS错误。出错的位置位于一个调用的第三方的.a静态库内部。因为调用代码并没有修改,很容易想到可能XCODE相关升级,导致的问题。由于是第三方的一个.a动态库,兼容问题,......
  • 创建service后,kubernetes会发生什么
    本文分享自华为云社区《当创建一个service后,kubernetes会发生什么?》,作者:可以交个朋友。一、Service介绍1.1Kubernetes为什么会引入service?考虑到集群中Pod实例IP地址随着工作负载的生命周期的变化,常规通过访问Pod实例的IP方法变得不再实用。每个工作负载通常有一个或者更多......
  • 【虹科分享】用Redis为LangChain定制AI代理——OpenGPTs
    penAI最近推出了OpenAIGPTs——一个构建定制化AI代理的无代码“应用商店”,随后LangChain开发了类似的开源工具OpenGPTs。OpenGPTs是一款低代码的开源框架,专用于构建定制化的人工智能代理。因为Redis具有高速和稳定性的优点,所以LangChain选择了Redis来作为OpenGPTs的默认向量数据......
  • 使用R语言和pholcus库进行网页爬取的简单示例
    如果您想要下载网页上的丰富内容,pholcus库似乎是一个用于网页爬虫的工具,但请注意使用爬虫工具时需要遵守网站的使用规则和法律法规。未经允许的爬取行为可能违反网站的服务条款,并可能导致法律问题。以下是一个使用pholcus库的简单示例。请确保您已经安装了pholcus库,可以通过执行以......
  • 什么是 CRM 销售流程中的 Conversion Probability
    销售流程中的ConversionProbability详解ConversionProbability,中文翻译为“转化概率”,是指在销售过程中某个潜在客户最终成为实际客户的可能性。这一概念在客户关系管理(CustomerRelationshipManagement,CRM)中扮演着至关重要的角色,帮助企业更好地了解和预测销售过程中的客户行为......
  • RP4VM 如何更改 RecoverPoint 产品系列系统中的默认 root 密码
    最佳做法是将默认系统密码更改为强且唯一的值。与其他Linux应用装置相似,root是RPA/vRPA中权限最高的用户。Root级别用户有权访问RPA/vRPA上的所有命令和文件,并且只能将其分配给组织中的受信任用户。默认情况下,在RecoverPoint中禁用root帐户的远程登录,DellEMC建议根据......
  • [LeetCode] 1363. Largest Multiple of Three 形成三的最大倍数
    Givenanarrayofdigits digits,return thelargestmultipleof three thatcanbeformedbyconcatenatingsomeofthegivendigitsin anyorder.Ifthereisnoanswerreturnanemptystring.Sincetheanswermaynotfitinanintegerdatatype,returnt......
  • 25-稳定基石:带你剖析容器运行时以及 CRI 原理.md
    当一个Pod在Kube-APIServer中被创建出来以后,会被调度器调度,然后确定一个合适的节点,最终被这个节点上的Kubelet拉起,以容器状态运行。那么Kubelet是如何跟容器打交道的呢,它是如何进行创建容器、获取容器状态等操作的呢?今天我们就来了解一下。容器运行时(ContainerRuntim......
  • 27-K8 CRD:如何根据需求自定义你的 API?
    随着使用的深入,你会发现Kubernetes中内置的对象定义,比如Deployment、StatefulSet、Configmap,可能已经不能满足你的需求了。你很希望在Kubernetes定义一些自己的对象,一来可以通过kube-apiserver提供统一的访问入口,二来可以像其他内置对象一样,通过kubectl命令管理这些自定......
  • 30-Kubectl 命令行工具使用秘笈
    在本课程的最后一讲,我来为你介绍一些kubectl使用过程中的小技巧。kubectl是我们日常操纵整个Kubernetes的利器,操作方便,功能强大。接下来,我会向你介绍常用的七个功能。自动补全我们可以通过如下命令进行命令行的自动补全,方便我们使用。如果你使用的是bash,可以通过如下命......