summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/awmail/index.js25
1 files changed, 19 insertions, 6 deletions
diff --git a/lib/awmail/index.js b/lib/awmail/index.js
index 4bfd08e..f5ed12b 100644
--- a/lib/awmail/index.js
+++ b/lib/awmail/index.js
@@ -5,6 +5,8 @@ var htmlTemplate = fs.readFileSync('templates/email.html', 'utf8')
var textTemplate = fs.readFileSync('templates/email.txt', 'utf8')
var mailgun = require('mailgun.js')
var request = require('request')
+var multer = require('multer')
+var Readable = require('stream').Readable
/*
awmail: {
@@ -28,6 +30,7 @@ function AWMail (options) {
var router = express.Router()
var config = options.config
+ var mult = multer()
var engine = new Liquid.Engine
var mg = mailgun.client({
@@ -35,13 +38,12 @@ function AWMail (options) {
key: process.env.MAILGUN_API_KEY,
})
- router.post('/send', function (req, res) {
+ router.post('/send', mult.single('image'), function (req, res) {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'X-Requested-With')
var email = req.body.email
var track = req.body.track
- var hash = req.body.hash
var secret = req.body.secret
if (! hash || secret !== config.secret) {
@@ -49,6 +51,11 @@ function AWMail (options) {
}
deferToNextTick().then(function(){
+ console.log("upload image")
+ return uploadImage({
+ file: req.file,
+ })
+ }).then(function(){
console.log("parse templates")
var templateData = {
email: email,
@@ -58,10 +65,11 @@ function AWMail (options) {
}).then(function(mailData){
console.log("send mail")
mailData.email = email
+ mailData.image = req.file
return sendMail(mailData)
}).then(function(){
console.log("store email")
- if (track) {
+ if (String(track) === 'true') {
return storeEmail(email)
} else {
return Q.Promise(function(resolve, reject, notify) { resolve() })
@@ -109,13 +117,12 @@ function AWMail (options) {
})
}
-/*
function uploadImage (data){
return Q.Promise(function(resolve, reject, notify) {
upload.put({
file: data.file,
preserveFilename: false,
- dirname: "nars/mail",
+ dirname: "armory/mail",
types: {
'image/gif': 'gif',
'image/jpeg': 'jpg',
@@ -131,7 +138,6 @@ function AWMail (options) {
})
})
}
-*/
function parseTemplates (data){
return Q.Promise(function(resolve, reject, notify) {
@@ -147,12 +153,19 @@ function AWMail (options) {
}
function sendMail (content){
+ var s = new Readable()
+ s._read = function noop() {}
+ s.path = 'face.jpg'
+ s.push(content.image)
+ s.push(null)
+
return mg.messages.create(config.domain, {
from: config.from,
to: [content.email],
subject: config.subject,
text: content.text,
html: content.html,
+ inline: [image],
})
}