【问题标题】:How to get Gmail Attachment using JavaScript before send via GET request如何在通过 GET 请求发送之前使用 JavaScript 获取 Gmail 附件
【发布时间】:2016-08-15 16:55:07
【问题描述】:

目前我正在开发 Chrome 扩展程序,我想要特定的电子邮件(即 message_id=1543c2a6347d984c)附件数据。我收到了电子邮件 message_id 还获得了附件文件名(即 abc.zip),但如何获取该附件并使用 Ajax 将其发送回我的服务器。

function getAttachments(userId, message, callback) {
  var parts = message.payload.parts;
  for (var i = 0; i < parts.length; i++) {
    var part = parts[i];
    if (part.filename && part.filename.length > 0) {
      var attachId = part.body.attachmentId;
      var request = gapi.client.gmail.users.messages.attachments.get({
        'id': attachId,
        'messageId': message.id,
        'userId': userId
      });
      request.execute(function(attachment) {
        callback(part.filename, part.mimeType, attachment);
      });
    }
  }
}

打电话

var userId="xyz@gmail.com"
    var message_id="1543c2a6347d984d";

    getAttachments(userId,message_id,function callback(filename,minetype,attachment){

console.log('File Name is '+filename);
console.log('MimeType is '+minetype);   
});

错误: main.js:15 Uncaught TypeError: Cannot read property 'parts' of undefined (function getAttachments line 2)

【问题讨论】:

    标签: javascript ajax google-chrome-extension email-attachments gmail-api


    【解决方案1】:

    你的message_id是一个字符串,然后你调用getAttachments方法并将它作为第二个参数传递,在getAttachments中,你调用message.payload.parts,这意味着你想从一个字符串中获取一个属性payload当然是undefined

    Users.messages.getUsers.messages.attachments.get 进行抢劫,您需要先获取消息,然后从中获取附件。

    function getAttachments(userId, message, callback) {
      var parts = message.payload.parts;
      for (var i = 0; i < parts.length; i++) {
        var part = parts[i];
        if (part.filename && part.filename.length > 0) {
          var attachId = part.body.attachmentId;
          var request = gapi.client.gmail.users.messages.attachments.get({
            'id': attachId,
            'messageId': message.id,
            'userId': userId
          });
          request.execute(function(attachment) {
            callback(part.filename, part.mimeType, attachment);
          });
        }
      }
    }
    
    function getMessage(userId, messageId, callback) {
      var request = gapi.client.gmail.users.messages.get({
        'userId': userId,
        'id': messageId
      });
      request.execute(function(message) {
          callback(userId, message);
      });
    }
    
    var userId="xyz@gmail.com"
    var message_id="1543c2a6347d984d";
    
    getMessage(userId, message_id, function(userId, message) {
        getAttachments(userId, message, function(filename,minetype,attachment) {
            console.log('File Name is '+filename);
            console.log('MimeType is '+minetype);   
        });
    });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2012-07-04
    • 2018-04-27
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多