From 8d8620417789550cce223fe48daee20e3b7b4c4a Mon Sep 17 00:00:00 2001
From: 徐荣 <xurong@xurongdeMacBook-Pro.local>
Date: Wed, 28 Dec 2016 16:17:14 +0800
Subject: [PATCH] 增加发送年度报表邮件功能
---
5837fc72dab0a10f44fc684a_2016_12.png | 0
5832ec6620cdec097af3db78_2016_12.png | 0
5837a148dab0a10f44fc6848_2016_12.png | 0
57b4117ecd5f86740fe26cb1_2016_12.png | 0
57e55428b2c5ee2d4c8e9cab_2016.png | 0
5834691d20cdec097af3db7a_2016_12.png | 0
582a0fbb76b2ace74a05354e_2016.png | 0
5844f53b1023fcd1353c1897_2016_12.png | 0
57bba70a20e7219a71d0b2ec_2016.png | 0
5852086143ae539e2895ba6c_2016.png | 0
5837fc72dab0a10f44fc684a_2016.png | 0
57e55428b2c5ee2d4c8e9cab_2016_12.png | 0
5844f53b1023fcd1353c1897_2016.png | 0
5852086143ae539e2895ba6c_2016_12.png | 0
57ed2f60b2c5ee2d4c8e9cb3_2016.png | 0
582fe2a320cdec097af3db74_2016.png | 0
582fe2a320cdec097af3db74_2016_12.png | 0
5766a035f08504e7cd3fb33e_2016_12.png | 0
reporter_year.js | 85 ++++++++++++++++++++++++++++++++++++++++++
5834691d20cdec097af3db7a_2016.png | 0
582d6af8677961ce6b055880_2016_12.png | 0
57ed2f60b2c5ee2d4c8e9cb3_2016_12.png | 0
5766a035f08504e7cd3fb33e_2016.png | 0
57b4117ecd5f86740fe26cb1_2016.png | 0
582a0fbb76b2ace74a05354e_2016_12.png | 0
5832ec6620cdec097af3db78_2016.png | 0
582d6af8677961ce6b055880_2016.png | 0
57bba70a20e7219a71d0b2ec_2016_12.png | 0
5837a148dab0a10f44fc6848_2016.png | 0
29 files changed, 85 insertions(+), 0 deletions(-)
diff --git a/5766a035f08504e7cd3fb33e_2016.png b/5766a035f08504e7cd3fb33e_2016.png
new file mode 100644
index 0000000..9768dfb
--- /dev/null
+++ b/5766a035f08504e7cd3fb33e_2016.png
Binary files differ
diff --git a/5766a035f08504e7cd3fb33e_2016_12.png b/5766a035f08504e7cd3fb33e_2016_12.png
new file mode 100644
index 0000000..c5d45e1
--- /dev/null
+++ b/5766a035f08504e7cd3fb33e_2016_12.png
Binary files differ
diff --git a/57b4117ecd5f86740fe26cb1_2016.png b/57b4117ecd5f86740fe26cb1_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/57b4117ecd5f86740fe26cb1_2016.png
Binary files differ
diff --git a/57b4117ecd5f86740fe26cb1_2016_12.png b/57b4117ecd5f86740fe26cb1_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/57b4117ecd5f86740fe26cb1_2016_12.png
Binary files differ
diff --git a/57bba70a20e7219a71d0b2ec_2016.png b/57bba70a20e7219a71d0b2ec_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/57bba70a20e7219a71d0b2ec_2016.png
Binary files differ
diff --git a/57bba70a20e7219a71d0b2ec_2016_12.png b/57bba70a20e7219a71d0b2ec_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/57bba70a20e7219a71d0b2ec_2016_12.png
Binary files differ
diff --git a/57e55428b2c5ee2d4c8e9cab_2016.png b/57e55428b2c5ee2d4c8e9cab_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/57e55428b2c5ee2d4c8e9cab_2016.png
Binary files differ
diff --git a/57e55428b2c5ee2d4c8e9cab_2016_12.png b/57e55428b2c5ee2d4c8e9cab_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/57e55428b2c5ee2d4c8e9cab_2016_12.png
Binary files differ
diff --git a/57ed2f60b2c5ee2d4c8e9cb3_2016.png b/57ed2f60b2c5ee2d4c8e9cb3_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/57ed2f60b2c5ee2d4c8e9cb3_2016.png
Binary files differ
diff --git a/57ed2f60b2c5ee2d4c8e9cb3_2016_12.png b/57ed2f60b2c5ee2d4c8e9cb3_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/57ed2f60b2c5ee2d4c8e9cb3_2016_12.png
Binary files differ
diff --git a/582a0fbb76b2ace74a05354e_2016.png b/582a0fbb76b2ace74a05354e_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/582a0fbb76b2ace74a05354e_2016.png
Binary files differ
diff --git a/582a0fbb76b2ace74a05354e_2016_12.png b/582a0fbb76b2ace74a05354e_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/582a0fbb76b2ace74a05354e_2016_12.png
Binary files differ
diff --git a/582d6af8677961ce6b055880_2016.png b/582d6af8677961ce6b055880_2016.png
new file mode 100644
index 0000000..853cf58
--- /dev/null
+++ b/582d6af8677961ce6b055880_2016.png
Binary files differ
diff --git a/582d6af8677961ce6b055880_2016_12.png b/582d6af8677961ce6b055880_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/582d6af8677961ce6b055880_2016_12.png
Binary files differ
diff --git a/582fe2a320cdec097af3db74_2016.png b/582fe2a320cdec097af3db74_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/582fe2a320cdec097af3db74_2016.png
Binary files differ
diff --git a/582fe2a320cdec097af3db74_2016_12.png b/582fe2a320cdec097af3db74_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/582fe2a320cdec097af3db74_2016_12.png
Binary files differ
diff --git a/5832ec6620cdec097af3db78_2016.png b/5832ec6620cdec097af3db78_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5832ec6620cdec097af3db78_2016.png
Binary files differ
diff --git a/5832ec6620cdec097af3db78_2016_12.png b/5832ec6620cdec097af3db78_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5832ec6620cdec097af3db78_2016_12.png
Binary files differ
diff --git a/5834691d20cdec097af3db7a_2016.png b/5834691d20cdec097af3db7a_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5834691d20cdec097af3db7a_2016.png
Binary files differ
diff --git a/5834691d20cdec097af3db7a_2016_12.png b/5834691d20cdec097af3db7a_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5834691d20cdec097af3db7a_2016_12.png
Binary files differ
diff --git a/5837a148dab0a10f44fc6848_2016.png b/5837a148dab0a10f44fc6848_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5837a148dab0a10f44fc6848_2016.png
Binary files differ
diff --git a/5837a148dab0a10f44fc6848_2016_12.png b/5837a148dab0a10f44fc6848_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5837a148dab0a10f44fc6848_2016_12.png
Binary files differ
diff --git a/5837fc72dab0a10f44fc684a_2016.png b/5837fc72dab0a10f44fc684a_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5837fc72dab0a10f44fc684a_2016.png
Binary files differ
diff --git a/5837fc72dab0a10f44fc684a_2016_12.png b/5837fc72dab0a10f44fc684a_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5837fc72dab0a10f44fc684a_2016_12.png
Binary files differ
diff --git a/5844f53b1023fcd1353c1897_2016.png b/5844f53b1023fcd1353c1897_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5844f53b1023fcd1353c1897_2016.png
Binary files differ
diff --git a/5844f53b1023fcd1353c1897_2016_12.png b/5844f53b1023fcd1353c1897_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5844f53b1023fcd1353c1897_2016_12.png
Binary files differ
diff --git a/5852086143ae539e2895ba6c_2016.png b/5852086143ae539e2895ba6c_2016.png
new file mode 100644
index 0000000..19ca8f6
--- /dev/null
+++ b/5852086143ae539e2895ba6c_2016.png
Binary files differ
diff --git a/5852086143ae539e2895ba6c_2016_12.png b/5852086143ae539e2895ba6c_2016_12.png
new file mode 100644
index 0000000..93b9092
--- /dev/null
+++ b/5852086143ae539e2895ba6c_2016_12.png
Binary files differ
diff --git a/reporter_year.js b/reporter_year.js
new file mode 100644
index 0000000..4fa1205
--- /dev/null
+++ b/reporter_year.js
@@ -0,0 +1,85 @@
+/**
+ * Created by bin.shen on 26/12/2016.
+ */
+
+var nodemailer = require("nodemailer");
+var smtpTransport = require('nodemailer-smtp-transport');
+var retry = require('retry');
+var request = require('request');
+var webshot = require('webshot');
+var fs = require("fs");
+var config = require('./config');
+var mongoClient = require('mongodb').MongoClient;
+var moment = require('moment');
+
+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 + '/myyear/' + year + '/view';
+ request(url, function (error, response, body) {
+ if (!error && response.statusCode == 200) {
+ var filename = userID + '_' + year + '.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������������');
+ });
+ }
+ });
+};
\ No newline at end of file
--
Gitblit v1.8.0