| | |
| | | var webshot = require('webshot'); |
| | | var fs = require("fs"); |
| | | var config = require('./config'); |
| | | var mongoClient = require('mongodb').MongoClient; |
| | | var moment = require('moment'); |
| | | |
| | | request('http://env.7drlb.com/report/user/5766a035f08504e7cd3fb33e/year/2016/month/11/view', function (error, response, body) { |
| | | if (!error && response.statusCode == 200) { |
| | | var filename = '5766a035f08504e7cd3fb33e_2016_11.png'; |
| | | webshot(body, filename, { |
| | | renderDelay: 3000, |
| | | siteType:'html', |
| | | screenSize: { |
| | | width: 1000, |
| | | height: 2000 |
| | | }, |
| | | shotSize: { |
| | | width: 1000, |
| | | height: 'all' |
| | | } |
| | | }, function(err) { |
| | | var filepath = __dirname + '/' + filename; |
| | | var imageFile = fs.readFileSync(filepath); |
| | | var send_email = function(email, subject, content, level) { |
| | | var operation = retry.operation(config.retryOption); |
| | | operation.attempt(function(currentAttempt) { |
| | | var to = email; |
| | | var html = '<img src="data:image/png;base64,' + imageFile.toString("base64") + '" width=1000 height=2000>'; |
| | | var transport = nodemailer.createTransport(smtpTransport(config.smtpOption)); |
| | | var mailOptions = { |
| | | from: config.smtpOption.auth.user, |
| | | to: to, |
| | | subject:subject, |
| | | html:html, |
| | | attachments: [{ |
| | | path: filepath, |
| | | filename: filename, |
| | | content: content |
| | | }] |
| | | }; |
| | | transport.sendMail(mailOptions, function(err, doc){ |
| | | if (operation.retry(err)) { |
| | | return; |
| | | } |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | send_email("it01@moral.org.cn", '七星博士环境监测月度统计表', '2016-11月度报告'); |
| | | }); |
| | | mongoClient.connect(config.mongo.uri, function(err, db) { |
| | | if (err) { |
| | | console.log(err.message); |
| | | return; |
| | | } |
| | | }); |
| | | console.log('Connecting to Mongo DB at ' + config.mongo.uri); |
| | | |
| | | var current = moment(); |
| | | var year = current.format("YYYY"); |
| | | var month = current.format("MM"); |
| | | |
| | | db.collection("users").find().toArray(function(err, docs) { |
| | | docs.forEach(function(doc) { |
| | | var userID = doc._id; |
| | | var email = doc.email; |
| | | console.log(year + ' | ' + month + ' | ' + userID + ' | ' + email); |
| | | sendReport(userID, year, month, email); |
| | | }); |
| | | }); |
| | | |
| | | db.close(); |
| | | }); |
| | | |
| | | var sendReport = function(userID, year, month, email) { |
| | | var url = 'http://env.7drlb.com/report/user/' + userID + '/year/' + year + '/month/' + month + '/view'; |
| | | request(url, function (error, response, body) { |
| | | if (!error && response.statusCode == 200) { |
| | | var filename = userID + '_' + year + '_' + month + '.png'; |
| | | webshot(body, filename, { |
| | | renderDelay: 3000, |
| | | siteType:'html', |
| | | screenSize: { |
| | | width: 1000, |
| | | height: 2000 |
| | | }, |
| | | shotSize: { |
| | | width: 1000, |
| | | height: 'all' |
| | | } |
| | | }, function(err) { |
| | | var filepath = __dirname + '/' + filename; |
| | | var imageFile = fs.readFileSync(filepath); |
| | | var send_email = function(email, subject, content, level) { |
| | | var operation = retry.operation(config.retryOption); |
| | | operation.attempt(function(currentAttempt) { |
| | | var to = email; |
| | | var html = '<img src="data:image/png;base64,' + imageFile.toString("base64") + '" width=1000 height=2000>'; |
| | | var transport = nodemailer.createTransport(smtpTransport(config.smtpOption)); |
| | | var mailOptions = { |
| | | from: config.smtpOption.auth.user, |
| | | to: to, |
| | | subject:subject, |
| | | html:html, |
| | | attachments: [{ |
| | | path: filepath, |
| | | filename: filename, |
| | | content: content |
| | | }] |
| | | }; |
| | | transport.sendMail(mailOptions, function(err, doc){ |
| | | if (operation.retry(err)) { |
| | | return; |
| | | } |
| | | }); |
| | | }); |
| | | }; |
| | | send_email(email, '七星博士环境监测月度统计表', '2016-11月度报告'); |
| | | }); |
| | | } |
| | | }); |
| | | }; |