node.js实现收取邮件,以及对特定邮件内容的自动回复,邮件正文保存的功能

阅读: 评论:0

node.js实现收取邮件,以及对特定邮件内容的自动回复,邮件正文保存的功能

node.js实现收取邮件,以及对特定邮件内容的自动回复,邮件正文保存的功能

废话不多说,直接上代码。。。

 

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);
}

<('ready', function() {

openInbox(function(err, box) {
if (err) throw err;

('mail', function() {
console.log("收到一封新邮件!")
//readMailbox();
ateServer(readMailbox).listen(3100);
})
});
})

<('error', function(err) {
console.log(err);
});

// ('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 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23