【发布时间】:2021-12-11 19:06:31
【问题描述】:
我正在尝试使用此代码从我的 google 工作区帐户发送电子邮件:
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
var credential = ServiceAccountCredential.FromServiceAccountData(stream);
service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var email = MimeMessage.CreateFromMailMessage(new System.Net.Mail.MailMessage("EMAILADDRESS", destinationEmailAddress, "Verification code", $"Your verification code is {messageBody}"));
Message message = new Message();
byte[] blob;
using (var memory = new MemoryStream())
{
email.WriteTo(memory);
blob = memory.ToArray();
}
message.Raw = await credential.SignBlobAsync(blob);
await service.Users.Messages.Send(message, "me").ExecuteAsync();
}
但我得到以下异常:
Google.Apis.Requests.RequestError\n前置条件检查失败。 [400]\n错误 [\n\tMessage[前置条件检查失败。]位置[-]原因[failedPrecondition]域[全局]\n]\n
我做错了什么?是否有正确的指南?
【问题讨论】:
标签: c# asp.net-core google-api gmail-api google-api-dotnet-client