我正在开发一个使用msgraph v.1.0生成的令牌通过Outlook api v2.0发送电子邮件的应用程序。它一直工作到几个星期前(据我所知),但是自从上星期三以来,我尝试了它,但是它不起作用(不发送电子邮件)!我以为是我的代码,但是我将其恢复为之前的代码,但仍能正常工作,但仍收到此错误:
我也已使用Mail.Send许可在Microsoft开发人员站点中注册了我的应用,然后返回那里以确保。 我的应用程序还可以访问SharePoint,并且可以正常工作。.登录时,我打印我的令牌,看起来不错。以前是发送电子邮件的。我不知道发生了什么。
"headers": {
"normalizedNames": {},
"lazyUpdate": null
},
"status": 401,
"statusText": "Unauthorized",
"url": "https://outlook.office.com/api/v2.0/me/sendmail",
"ok": false,
"name": "HttpErrorResponse",
"message": "Http failure response for https://outlook.office.com/api/v2.0/me/sendmail: 401 Unauthorized",
"error": null
}
我用来发送电子邮件的代码是:
private serverUrl =
"https://outlook.office.com/api/v2.0/me/sendmail";
constructor(private
http: HttpClient) {}
postData(data:
any, token:
any) {
let options =
this.createRequestOptions(token);
return this.http.post(this.serverUrl,
data, { headers:
options })
.map(res
=> res);
}
private createRequestOptions(token:
any) {
let headers =
new HttpHeaders({
"Authorization":
"Bearer " +
token,
"Content-Type":
"application/json"
});
return headers;
}
我正在传递值:
this.mailService
.postData(this.data,
this.token)
.subscribe(
() => {
dialogs.alert("Email sent. Thank you!").then(function () {
let page =
topmost().currentPage;
page.modal.closeModal();
});
},
(e) => {
console.log(e);
alert({
message: "An error occurred while sending your contact helpdesk.",
okButtonText:
"OK"
});
});
有人遇到这个问题吗?
答案 0 :(得分:2)
我通过更改用于发送电子邮件的API解决了我的问题。我没有使用Outlook API,而是改用MSGRAPH,所以现在我的变量serverUrl为https://graph.microsoft.com/v1.0/me/sendmail,现在可以使用了。