2016-09-20 13 views
2

Проблема, с которой я столкнулся, заключается в том, что я могу отправлять только сообщения электронной почты с вложениями или данными шаблона, но я не нашел способ отправить их.Отправка почты с вложениями и html-данными с помощью nodemailer

Вот мой код:

var EmailTemplate = require('email-templates').EmailTemplate; 
var template = new EmailTemplate('templates/welcome'); 
template.render({}, function(err, results) { 
    var send = transporter.templateSender({ 
    from: '<[email protected]>', 
    html: results.html, 
    attachments: [{ 
     filename: 'file1.png', 
     path: 'templates/file1.png', 
     cid: 'file1' 
    }, { 
     filename: 'file2.png', 
     path: 'templates/file2.png', 
     cid: 'file2' 
    }] 
    }); 

    send({ 
    to: String(user.emailAddress), 
    subject: 'Welcome to the Our Site!' 
    }, {name: user.firstName}, callback); 
}); 

Если я делаю это так, как показано выше, переменная шаблона имя делает, но картинки не отображаются. Если я вместо этого сделаю

var send = transporter.templateSender(template, ... 

тогда вложения визуализируют, а не переменную шаблона.

Я знаю, что я могу использовать шаблон для шаблонов, например, Jade или Handlebars для такого рода вещей, но это похоже на излишний, когда у nodemailer есть все необходимые функции.

Любая помощь будет оценена по достоинству. Спасибо!

ответ

1

Я делал то же самое, и я потратил впустую свои драгоценные 4 часа, чтобы решить это как раз перед тем, как Go LIVE. Но в конце концов я нашел ответ на это.

место, чтобы сохранить вложения находится в send() частях, а не templateSender(), так что код должен выглядеть следующим образом:

send({ 
    to: String(user.emailAddress), 
    subject: 'Welcome to the Our Site!', 
    attachments:[{ 
     filename: 'file1.png', 
     path: 'templates/file1.png', 
     cid: 'file1' 
    }, { 
     filename: 'file2.png', 
     path: 'templates/file2.png', 
     cid: 'file2' 
    }] 
    }, {name: user.firstName}, callback); 

Надеется, что это помогает кто-то!

+0

Спасибо, миллион, это действительно нервировало. Теперь я могу, наконец, увидеть прикрепленное изображение. Просто нужно понять, как фактически внедрить его в тег img из буфера, и все это сделано. Не могли бы вы узнать, как это сделать? – AdelaN

+0

@AdelaN, вы можете преобразовать этот буфер в base64 и передать его в тег img – roneo

+1

Пробовал, что не работал. В конечном итоге работала с этим 'src' с идентификатором содержимого, то есть' '... – AdelaN

 Смежные вопросы

  • Нет связанных вопросов^_^