我正在使用 C# Microsoft Graph 發送電子郵件,但是當我呼叫 await graphClient.Me.SendMail(message).Request().PostAsync( ) 方法。我嘗試首先呼叫 var request = graphClient.Me.SendMail(message).Request() 并看到請求物件不為空,但是當我呼叫 request.PostAsync() 時它給出了錯誤,所以我認為 PostAsync() 方法有問題,或者我遺漏了一些東西。
我不確定我們是否可以使用 msal-browser 中的訪問令牌在 C# 中發送電子郵件?
這是代碼作業流程:
- 在用戶選擇他們的 Outlook 帳戶后,我在瀏覽器上呼叫 msalInstance.loginPopup(loginRequest) 方法來獲取 accesstoken。
- 然后我將訪問令牌從客戶端發送到后端以發送電子郵件。但是我在這一步遇到了錯誤 await graphClient.Me.SendMail(message).Request().PostAsync();
注意:我想從后端(C#)而不是 javascript 發送電子郵件,因為我想在后端處理一些邏輯代碼。
這是 SDK:
然后你需要像這樣修改你的發送電子郵件方法,它對我有用:
public async Task sendAsync() {
var mesg = 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]"
}
}
},
Attachments = new MessageAttachmentsCollectionPage()
};
var temp = new MailContentModel
{
message = mesg
};
var jsonStr = JsonSerializer.Serialize(temp);
string token = "your_token";
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
HttpResponseMessage response = await httpClient.PostAsync("https://graph.microsoft.com/v1.0/me/sendMail", new StringContent(jsonStr, Encoding.UTF8, "application/json"));
}
using Microsoft.Graph;
public class MailContentModel
{
public Message message { get; set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409249.html
標籤:
下一篇:如何通過laravel接收郵件?
