outlook郵箱 使用 windows graph接口 發(fā)送郵件

背景:因為微軟禁用 用戶名密碼發(fā)送郵件,所以之前通過用戶名密碼發(fā)送郵件的功能 需要升級。

調(diào)研:調(diào)研發(fā)現(xiàn),使用graph的接口實現(xiàn)起來更自然,只需要實現(xiàn)兩個接口即可

實現(xiàn)流程:

1.調(diào)用 獲取token的接口:

1.1.請求地址https://login.microsoftonline.com/注冊的Azure賬戶的域/oauth2/v2.0/token

1.2.請求方式POST

1.3. Body:

grant_type 傳入固定值:client_credentials

client_id 傳入注冊的企業(yè)應(yīng)用程序的“應(yīng)用程序ID”

scope 傳入固定值:https://graph.microsoft.com/.default

client_secret 傳入 新建企業(yè)應(yīng)用程序后 可以一次性獲取到的 登錄秘鑰【這里也可以使用證書】

獲取token接口


2. 利用獲取的token,可以用任何 上面這個應(yīng)用下面的任意用戶的郵箱發(fā)送郵件

2.1.請求地址:https://graph.microsoft.com/v1.0/users/郵件發(fā)送人的郵箱 or Azure用戶的id/sendmail

2.2.請求方式POST

2.3.HEADER:

Authorization :接口1獲取到的token

Content-Type:application/json

Host:graph.microsoft.com


2.4.Body:

{

??"message":?{

????"subject":?"郵件主題",

????"body":?{

??????"contentType":?"Text",

??????"content":?"這里是郵件內(nèi)容"

????},

????"toRecipients":?[

??????{

????????"emailAddress":?{

??????????"address":?"收件人郵箱"

????????}

??????}

????],

????"ccRecipients":?[

??????{

????????"emailAddress":?{

??????????"address":?"抄送郵箱"

????????}

??????}

????]

??},

??"saveToSentItems":?"true"

}


2.5. 注意:sendemail 接口調(diào)用成功了,返回的響應(yīng)碼不是200 而是201?

sendemail


PS: 如果你的Azure賬戶 沒有購買,只是個測試用戶。那么郵件是發(fā)不出去的。

接口調(diào)用成功后,郵箱會收到報錯郵件:

Your message wasn't delivered because the recipient's email provider rejected it.

Remote Server returned '550 5.7.708 Service unavailable. Access denied, traffic not accepted from this IP. For more information please go to http://go.microsoft.com/fwlink/?LinkId=526653 AS(7230) [CH2PR14MB3959.namprd14.prod.outlook.com]'

報錯郵件示例
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容