首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node-ews持有者获取电子邮件nodejs

Node-ews持有者获取电子邮件nodejs
EN

Stack Overflow用户
提问于 2021-08-25 13:00:29
回答 1查看 67关注 0票数 0

当我尝试从EWS获取电子邮件时遇到问题

代码语言:javascript
复制
class EWSModule {
    async test(token, mailID){
        const ewsConfig = {
            token,
            host: 'https://outlook.office365.com/EWS/Exchange.asmx',
            auth: 'bearer',
            username: 'Dont Known Why This Need This'
        };
        
        let ews = new EWS(ewsConfig);
        console.log(await this.getItem({id:mailID},ews))
    }

   async  getItem (item, ews){
        const ewsFunction = 'GetItem';
    
        const ewsArgs = {
          'ItemShape': {
            'BaseShape': 'Default',
            'IncludeMimeContent':'true'
          },
          "ItemIds" : {
            "ItemId" : {
                "attributes": {
                   "Id" : item.Id
                }
              },
          }
        };
        return await ews.run(ewsFunction, ewsArgs)
    }
}

未使用ewsConfig上的字段用户名,但它是必需的。

当我这样做的时候,我得到了一个错误:

代码语言:javascript
复制
(node:18) UnhandledPromiseRejectionWarning: Error: no auth mechanism defined
    at Auth.onRequest (/usr/src/app/node_modules/node-ews/node_modules/request/lib/auth.js:132:32)
    at Request.auth (/usr/src/app/node_modules/node-ews/node_modules/request/request.js:1341:14)
    at Request.init (/usr/src/app/node_modules/node-ews/node_modules/request/request.js:378:10)
    at new Request (/usr/src/app/node_modules/node-ews/node_modules/request/request.js:127:8)
    at request (/usr/src/app/node_modules/node-ews/node_modules/request/index.js:53:10)
    at /usr/src/app/node_modules/node-ews/lib/auth/bearer.js:31:11
    at init (/usr/src/app/node_modules/when/lib/makePromise.js:39:5)
    at new Promise (/usr/src/app/node_modules/when/lib/makePromise.js:27:53)
    at Function.promise (/usr/src/app/node_modules/when/when.js:97:10)
    at Object.getUrl (/usr/src/app/node_modules/node-ews/lib/auth/bearer.js:30:21)
    at /usr/src/app/node_modules/node-ews/lib/ews.js:157:33
    at tryCatchReject (/usr/src/app/node_modules/when/lib/makePromise.js:845:30)
    at runContinuation1 (/usr/src/app/node_modules/when/lib/makePromise.js:804:4)
    at Rejected.when (/usr/src/app/node_modules/when/lib/makePromise.js:625:4)
    at Pending.run (/usr/src/app/node_modules/when/lib/makePromise.js:483:13)
    at Scheduler._drain (/usr/src/app/node_modules/when/lib/Scheduler.js:62:19)

我不知道我在认证时做错了什么,我的其余代码(接收电子邮件)是正确的

@GlenScales u是对的:)我没有将token作为未定义进行传递。但这并没有完全解决我的问题。

不是我得到了一个:

代码语言:javascript
复制
(node:19) UnhandledPromiseRejectionWarning: Error: Invalid or malformed wsdl file: /tmp/tmp-19GjJa1cZki3Xp/services.wsdl
    at /usr/src/app/node_modules/node-ews/lib/ews.js:126:20
    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:73:3)

所有文件:

都是空的

EN

回答 1

Stack Overflow用户

发布于 2021-08-26 23:58:00

我认为你对主机的配置是错误的,如在源代码中

代码语言:javascript
复制
  // build ews url
  ews.urlApi = ews.config.host + '/EWS/Exchange.asmx';

  // build ews soap urls
  ews.urlServices = ews.config.host + '/ews/services.wsdl';
  ews.urlMessages = ews.config.host + '/ews/messages.xsd';
  ews.urlTypes = ews.config.host + '/ews/types.xsd';

因此,主机的配置应该是

代码语言:javascript
复制
const ewsConfig = {
 host: 'https://outlook.office365.com'

};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68923410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档