Nodejs: получить свойство 'x-failed-sources' в mailparser - PullRequest
1 голос
/ 14 мая 2019

Я хочу получить свойство 'X-Failed-Recipients' из файла MBox, используя пакет mailparser в Node.JS.

Здесь идет MWE, у меня есть два файла, uploadapp.js и uploadfile.html

// File : uploadapp.js
var express = require('express');
var formidable = require('formidable');
var app = express();
var MailParser  = require('mailparser').MailParser;
var Mbox = require('node-mbox');
var mbox = new Mbox();
var fs = require('fs');

app.get('/', function (req, res){
    res.sendFile(__dirname + '/uploadfile.html');
});

app.post('/', function (req, res){
    var form = new formidable.IncomingForm();
    form.parse(req);

    form.on('fileBegin', function (name, file){
    file.path = __dirname + '/uploads/' + file.name;

    const mailbox = fs.readFileSync(file.path);
        processMailbox(mailbox);
    });

    res.sendFile(__dirname + '/uploadfile.html');
});

function processMailbox(mailbox) {
    let mbox = new Mbox(mailbox);
    // wait for message events
    mbox.on('message', function(msg) {
      // parse message using MailParser
      let mailparser = new MailParser({ streamAttachments : true });

      mailparser.on('headers', function(headers) {
        console.log('From   :', headers.get('from').value[0].address);
        console.log('Subject:', headers.get('subject'), '\n');

    // This is returning 'undefined'! How to retreive 'x-failed-receipients'?
    console.log('X-Failed-Recipients:', headers.get('x-failed-recipients'),'\n');
      });
      mailparser.write(msg);
      mailparser.end();
});
}
app.listen(3000);

А вот и файл uploadfile.html

<!-- File : uploadfile.html-->
<!DOCTYPE html>
<html>
<head>
    <title>Simple Upload Example</title>
</head>
<body>
<form action="/" enctype="multipart/form-data" method="post">
    <input type="file" name="upload" multiple>
    <input type="submit" value="Upload">
</form>
</body>
</html>

Надеюсь, вопрос достаточно ясен.Основной код находится в uploadapp.js.

Есть идеи?

...