gpt4 book ai didi

javascript - 使用 Node 作为服务器的 O365 邮件 API

转载 作者:行者123 更新时间:2023-12-02 23:04:01 25 4
gpt4 key购买 nike

我正在使用 Node.js 编写 O365 发送邮件 API。我的 Node 充当服务器,Angular 和 Xamarin 充当客户端(Web 和移动)。我已经浏览过documentation 。据此,我已包含 Microsoft SDK 并在 Microsoft Azure 中注册我的应用程序以获取客户端 ID。接下来是邮件 API 代码。

代码

const options = {
authProvider,
};

const client = Client.init(options);

const sendMail = {
message: {
subject: "Meet for lunch?",
body: {
contentType: "Text",
content: "The new cafeteria is open."
},
toRecipients: [
{
emailAddress: {
address: "fannyd@contoso.onmicrosoft.com"
}
}
],
ccRecipients: [
{
emailAddress: {
address: "danas@contoso.onmicrosoft.com"
}
}
]
},
saveToSentItems: "false"
};

let res = await client.api('/me/sendMail')
.post(sendMail);

要创建authProvider,我必须在此处进行场景

  1. 调用 Web API 的 Web 应用
  2. 调用网络 API 的移动应用

我不知道如何创建authProvider。文档很困惑。有人可以帮我吗

最佳答案

您需要将该代码放入后端 (node.js)。只需创建一个动态辅助函数来发送这样的邮件

utils.js

const options = {
authProvider,
};

const client = Client.init(options);

const utils = {};

utils.sendMail = async (to, subject, body, cc, isSave) => {
const mailOptions = {
message: {
subject: subject || '',
body: { ...body },
toRecipients: to,
},
saveToSentItems: `${isSave}`,
};
if (cc) {
mailOptions.message.ccRecipients = cc;
}
const result = await client.api('/me/sendMail').post(mailOptions);
return result;
};

module.exports = utils;

并像这样调用该函数

const test = async () => {
try {
const to = [
{
emailAddress: {
address: 'fannyd@contoso.onmicrosoft.com',
},
},
];
const cc = [
{
emailAddress: {
address: 'danas@contoso.onmicrosoft.com',
},
},
];
const subject = 'Test';
const body = {
contentType: 'Text',
content: 'The new cafeteria is open.',
};
const saveToSentItems = true;
const result = await utils.sendMail(to, subject, body, cc, saveToSentItems);
return result;
} catch (err) {
console.log(err);
throw err;
}
};

test();

我建议你把你的逻辑放在后端当你有多个客户端,例如androidiOsPWA那么你需要重写您的代码适用于所有 3 个平台,如果您将通用业务逻辑放在后端,那么单个代码可以服务于所有 3 个平台。

关于javascript - 使用 Node 作为服务器的 O365 邮件 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57669321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com