Я создаю процесс для отправки электронных писем из моего приложения. Я зарегистрировался в организации Office 365 в Azure, чтобы проверить это. При регистрации в приложении я предоставил следующие разрешения. Для этих разрешений предоставлено согласие администратора.
Затем я написал этот код, основанный на проекте github.
using Microsoft.Graph;
using Microsoft.Graph.Auth;
using Microsoft.Identity.Client;
using System;
using System.Collections.Generic;
using System.Web.UI;
namespace DemoOutlookMail
{
public partial class _Default : Page
{
protected void send_Click(object sender, System.EventArgs e)
{
const string tenantId = "APP REGISTRATION TENANT ID";
const string redirectUri = "https://localhost:44316/";
const string clientSecret = "APP REGISTRATION SECRET";
const string clientId = "APP REGISTRATION CLIENT ID";
const string AuthorityFormat = "https://login.microsoftonline.com/{0}/v2.0";
IConfidentialClientApplication daemonClient;
daemonClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority(string.Format(AuthorityFormat, tenantId))
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret)
.Build();
ClientCredentialProvider authProvider = new ClientCredentialProvider(daemonClient,"Mail.Send");
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
SendEmail(graphClient);
}
private void SendEmail(GraphServiceClient graphClient)
{
var message = new Message
{
Subject = "Meet for lunch?",
Body = new ItemBody
{
ContentType = BodyType.Text,
Content = "The new cafeteria is open."
},
ToRecipients = new List<Recipient>()
{
new Recipient
{
EmailAddress = new EmailAddress
{
Address = "[email protected]"
}
}
},
CcRecipients = new List<Recipient>()
{
new Recipient
{
EmailAddress = new EmailAddress
{
Address = "[email protected]"
}
}
}
};
var saveToSentItems = false;
try
{
graphClient.Me.SendMail(message, saveToSentItems).Request().PostAsync();
}
catch(Exception e)
{
Label1.Text = e.Message;
}
}
}
}
Этот код работает, но не отправляет электронные письма, не генерирует никаких исключений. Что мне не хватает? Исходный проект github: https://github.com/Azure-Samples/ms-identity-aspnet-daemon-webapp