2016-11-08 17 views
0

私は(IMAP://)を使用してコンピュータにローカルメッセージをダウンロードするにはどうすればよいMsgHdrToMimeMessageThunderbirdでIMAP経由でローカルコンピュータにメッセージをダウンロードする方法は?

MsgHdrToMimeMessage(msgHdr, null, function(aMsgHdr, aMimeMsg) { 
    let attachments = aMimeMsg.parts[0].parts; 
    log(attachments); 

}, false, { 
    saneBodySize: false, 
}); 

glodaモジュール関数を介して添付ファイルを受信リンクを?

私はthisを試してみます。しかし、私はエラーがあります。

MsgHdrToMimeMessage(msgHdr, null, function(aMsgHdr, aMimeMsg) { 
     try { 
     var attachments = aMimeMsg.allAttachments; 
     for (var [index, att] in Iterator(attachments)) { 
      var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); 
      var attURL = null; 
      attURL = ioService.newURI(att.url, null, null); 

      attURL.QueryInterface(Ci.nsIMsgMessageUrl); 
      log(attURL) 

      var uri = attURL.uri; 

      // not work in this place. 
      // console.log: ReferenceError {} 
      var file = FileUtils.getFile("TmpD", [att.name]); 
      file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, FileUtils.PERMS_FILE); 

      messenger.saveAttachmentToFile(file, att.url, uri, att.contentType, null); 

     } 
     } catch (err) { 
     log(err); 
     } 

    }, false, { 
     saneBodySize: false, 
    }); 

答えて

0

解決済みの問題。サーバーからの添付ファイルのダウンロードの実装:

// Initialize. 
const Cc = Components.classes; 
const Ci = Components.interfaces; 
const Cu = Components.utils; 

Cu.import("resource:///modules/mailServices.js"); 
Cu.import("resource:///modules/iteratorUtils.jsm"); 
Cu.import("resource:///modules/Services.jsm"); 
Cu.import("resource:///modules/gloda/mimemsg.js"); 
Cu.import("resource:///modules/FileUtils.jsm"); 

MsgHdrToMimeMessage(msgHdr, null, function(aMsgHdr, aMimeMsg) { 
    let attachments = aMimeMsg.allAttachments; 

    for (let [index, att] in Iterator(attachments)) { 
    let ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); 

    let attURL = ioService.newURI(att.url, null, null); 
    attURL.QueryInterface(Ci.nsIMsgMessageUrl); 
    let uri = attURL.uri; 

    let file = FileUtils.getFile("TmpD", [att.name]); 
    file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, FileUtils.PERMS_FILE); 

    let messenger = Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); 
    messenger.saveAttachmentToFile(file, att.url, uri, att.contentType, null); 
    } 

}, false, {}); 
関連する問題