nodejs如何获取gmail原始消息?

时间:2018-01-30 15:58:00

标签: javascript node.js gmail-api

我正在尝试使用gmail api reference中所述格式的原始选项获取包含正文内容的完整电子邮件数据。它怎么似乎都不起作用。以下是我的代码:

function listMessages(auth) {
  var gmail = google.gmail('v1');
  var nextPageToken = null;

  gmail.users.messages.list({
    auth: auth,
    userId: 'me',
    pageToken: nextPageToken,
    q: ''
  }, function(err, response) {
    if (err) {
      console.log('The API returned an error: ' + err);
      return;
    }

    var msgs = response.messages;
    if (msgs.length == 0) {
      console.log('No messages found.');
    } else {
      console.log('Messages:');
      the_format = 'raw';
      for (var i = 0; i < msgs.length; i++) {
        var msg = msgs[i];
        console.log('- %s', msg.id);
        gmail.users.messages.get({
          auth: auth,
          userId: 'me',
          id: msg.id,
          format: the_format,
        }, function(err, response) {
          if (err) {
             console.log('The API returned an error: ' + err);
             return;
          }

          console.log(response);

        });
      }
    }
  });
}

以下是返回结果的示例。当我更改'format'(raw或minimal)时,我看不到原始字段和返回相同的结果。

我在这里缺少什么?

{ id: '16xxxxxxxxxxxxxxxxxx',
  threadId: '161xxxxxxxxxxxxxxxx',
  labelIds: [ 'UNREAD', 'Label_44', 'CATEGORY_UPDATES' ],
  snippet: 'atom posted: &quot;Voici le 9e volet de notre rubrique À quoi tu joues ? Aujourd&#39;hui la Testing Team vous embarque au Japon, avec Sakura. S&#39;est perdu dans un manoir infernal, ou a défendu un',
  historyId: '11336356',
  internalDate: '1516xxxxxxxxx',
  payload:
   { partId: '',
     mimeType: 'multipart/alternative',
     filename: '',
     headers:
      [ [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object] ],
     body: { size: 0 },
     parts: [ [Object], [Object] ] },
  sizeEstimate: 98391 }

1 个答案:

答案 0 :(得分:0)

您需要使用:

var msgs = response.data.messages;

代替:

var msgs = response.messages;

就是这样。