当我尝试获取已发送消息的互联网标头时,它返回空字符串,但它适用于收到的消息。
emailjs-mime-parser - 工作正常。我的 asyncResult.value 为 "";
import parser from 'emailjs-mime-parser';
export const getHeaders = async (mail: Office.MessageRead) => {
return await new Promise((resolve, reject) => {
mail.getAllInternetHeadersAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const response = parser(asyncResult.value);
resolve(response);
} else {
reject(new Error(asyncResult.error.message));
}
});
});
};
预期:getAllInternetHeadersAsync 返回已发送消息的标头。
PR_TRANSPORT_MESSAGE_HEADERS
MAPI 属性仅出现在收到的消息上,而不会出现在发送的消息上。消息已被移动到“已发送邮件”文件夹后,传输提供商会异步发送消息并添加标头。
嗨@Alex Nietsvietov,您可以使用这个简单的 js 获取 Outlook 邮件互联网标头。
Office.context.mailbox.item.getAllInternetHeadersAsync(getCallback);
function getCallback(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
try {
var Header = asyncResult.value.match(/x-preferred-fruit:.*/gim)[0].slice(19);
console.log(Header)
} catch (error) {
console.log("Error getting preferences from header: Header not found" + error);
}
} else {
console.log("Error getting preferences from header: " +
JSON.stringify(asyncResult.error));
}}
您可以查看原始的 Microsoft Office Api Internet Headers