废话不多说,直接上代码。。。
var Imap = require('imap');
var inspect = require('util').inspect;
var MailParser = require("mailparser").MailParser;
var nodemailer = require('nodemailer');
var fs = require('fs');
var http = require('http');
var imap = new Imap({
user: 'youremail',
password: 'yourpassword.',
host: 'imap.qq',
port: 993,
tls: true
});
var smtpTransport = ateTransport({
host: 'smtp.qq',
port: 465,
secure: true, // use SSL
auth: {
user: 'youremail',
pass: 'yourpassword'
}
});
function openInbox(cb) {
imap.openBox('INBOX', true, cb);
}
openInbox(function(err, box) {
if (err) throw err;
('mail', function() {
console.log("收到一封新邮件!")
//readMailbox();
ateServer(readMailbox).listen(3100);
})
});
})
// ('end', function() {
// console.log('邮件收取结束');
// });
function readMailbox(req, res) {
//只读取新邮件
//
res.writeHead(200, { 'Content-Type': 'text/html;charset=utf-8' });
//new代表新邮件,未读邮件
imap.search(['NEW'], function(err, results) {
var count = 0;
//console.log('unseen mail count: ' + results.length);
if (err) throw err;
var f = imap.fetch(results, { bodies: '', markSeen: true }); //标记为已读
f.on('message', function(msg, seqno) {
var mailparser = new MailParser();
var prefix = '(#' + seqno + ')';
//正文内容的处理
('body', function(stream, info) {
if (info.which === 'TEXT') {
console.log(prefix + 'Body [%s] found, %d total bytes', inspect(info.which), info.size);
}
//pipe到mailparse解析器
stream.pipe(mailparser);
var buffer = '',
count = 0;
('data', function(chunk) {
count += chunk.length;
buffer += String('utf8');
});
//stream结束,向console发出消息
('end', function() {
// if (info.which !== 'TEXT') {
// console.log(prefix + 'Parsed header: %s', inspect(Imap.parseHeader(buffer)));
// } else {
// console.log(prefix + 'Body[%s] Finished', inspect(info.which));
// }
});
//保存邮件内容到本地
("end", function(mail) {
//console.log(typeof(mail))
//mail是一个对象
fs.writeFile('msg- ' + seqno + '.html', mail.html, function(err) {
if (err) {
throw err;
}
});
//如果有附件,则存储起来。
if (mail.attachments) {
mail.attachments.forEach(function(attachment) {
fs.writeFile('msg-' + seqno + '-' + atedFileName, t, function(err) {
if (err) {
throw err;
}
});
});
};
d(mail.html);
// console.log(mail.from,mail.headers);
if (mail.html.indexOf("hello") != -1) {
console.log(mail.from[0].address);
var mailOptions = {
from: "46967489@qq",
to: mail.from[0].address,
subject: "node邮件",
html: '<h2>如果你的邮件中含有"hello"字样,将会自动收到这样一封邮件!</h2><p style="color:#e00;">来自李志祥的邮件</p>'
}
smtpTransport.sendMail(mailOptions, function(err, resp) {
if (err) {
console.log(err);
}
console.log("发送成功")
smtpTransport.close(); //关闭连接池
});
}
});
});
f.on('error', function(err) {
console.log('Fetch error: ' + err);
});
// f.on('end', function() {
// count++;
// console.log('已抓取到' + count + '邮件');
// //d()
// });
});
});
}
转载于:.html
本文发布于:2024-02-01 19:19:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678635138880.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |