getAllInternetHeadersAsync 返回已发送消息的空字符串

问题描述 投票:0回答:2

当我尝试获取已发送消息的互联网标头时,它返回空字符串,但它适用于收到的消息。

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 返回已发送消息的标头。

office-js outlook-addin
2个回答
0
投票

PR_TRANSPORT_MESSAGE_HEADERS
MAPI 属性仅出现在收到的消息上,而不会出现在发送的消息上。消息已被移动到“已发送邮件”文件夹后,传输提供商会异步发送消息并添加标头。


0
投票

嗨@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

© www.soinside.com 2019 - 2024. All rights reserved.