2015-03-11 4 views
2

Я попытался отправить некоторое письмо, содержащееся в файле с nodemailer для nodejs, чтобы сделать это, я сначала проанализировал файл с помощью mailparser, а затем отправил возвращаемый объект с почтовой программой узла, проблема в том, что кажется что он удваивает заголовки, создавая два из:, два в: и т. д. Мне интересно, есть ли другой способ сделать nodemailer для чтения файлов из каталога и отправить их, или если вы знаете какой-либо другой способ, который я мог бы сделать что.Отправить raw файл электронной почты с nodeJs

У меня есть файлы, которые накапливаются в каталоге, и каждый день в 8 утра все они отправляются на сервер. Время может измениться, но это не уместно, я думаю :). спасибо за любую помощь или советы, которые вы можете дать ребятам, а другие за чтение: P.

Вот это Exemple кода я использую, как спросил

var fs = require('fs'); 
var MailParser = require("mailparser").MailParser; 
var file = './113B797D-69F0-4127-A4CE-27923E7006CF.3.1'; 
var nodemailer = require('nodemailer'); 
var transporter = nodemailer.createTransport({ 
port: 2529, 
host: '127.0.0.1' 
}); 
var mailparser = new MailParser(); 
mailparser.on("error", function(err) { 
    console.log('[Error] mailparser: '+err); 
}); 

mailparser.on("end", function(mail_object) { 
    console.log(mail_object); 
    transporter.sendMail(mail_object); 
}); 
fs.createReadStream(file).pipe(mailparser); 
+0

Проверить этот пост http://stackoverflow.com/questions/28994023/sending-html -email-with-node-js –

+0

Я видел это раньше, но он создает свой собственный заголовок, или в моем случае заголовок уже существует и со всеми полями, поэтому мои письма отклоняются, когда я отправляю его с помощью mailparser, потому что он дублирует все поля. В худшем случае я могу попытаться «взломать» mailparser, но я надеялся не дойти до этого: x – Darksorrow

+0

Не могли бы вы опубликовать код, что вы делаете? Сложно понять вашу проблему ... –

ответ

1

var nodemailer = require('nodemailer'); 
 

 
// create reusable transporter object using the default SMTP transport 
 
var smtpConfig = { 
 
    host: 'smtp.email.com', 
 
    port: 465, 
 
    secure: true, // use SSL 
 
    auth: { 
 
     user: '[email protected]', 
 
     pass: 'passHere' 
 
    } 
 
}; 
 

 
var transporter = nodemailer.createTransport(smtpConfig); 
 

 
// setup e-mail data with unicode symbols 
 
var mailOptions = { 
 
    envelope: { 
 
     from: '[email protected]', // sender address 
 
     to: '[email protected]' // list of receivers 
 
    }, 
 
    raw: { 
 
     path: '/path/to/file.eml' 
 
    } 
 
}; 
 

 
// send mail with defined transport object 
 
transporter.sendMail(mailOptions, function(error, info){ 
 
    if(error){ 
 
     return console.log(error); 
 
    } 
 
    console.log('Message sent: ' + info.response); 
 
});

Смежные вопросы