2016-09-20 1 views
2

Das Problem, das ich lief, ist, dass ich nur eine E-Mail mit Anlagen oder Vorlagedaten senden kann, aber ich habe keine Möglichkeit gefunden, beide zu senden.Senden von E-Mails mit Anlagen und HTML-Daten mit Hilfe von nodemailer

Hier ist mein Code:

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

Wenn ich es so mache, oben gezeigt, den Namen Template-Variable macht, aber die Bilder zeigen nicht auf. Wenn ich stattdessen

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

dann die Anlagen rendern, und nicht die Vorlage Variable.

Ich weiß, dass ich ein Templating-Paket wie Jade oder Lenker für diese Art von Sache verwenden könnte, aber das scheint wie Overkill, wenn nodemailer die ganze Funktionalität hat, die ich brauche.

Jede Hilfe wäre willkommen. Danke!

Antwort

1

Ich tat genau das gleiche und ich habe meine kostbaren 4 Stunden verschwendet, um das zu lösen, kurz bevor ich LIVE gehe. Aber endlich fand ich eine Antwort darauf.

Die Beilagen zu halten, ist in der send() Teil statt templateSender(), so sollte der Code wie folgt aussehen:

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

Hoffe, dass es jemand hilft!

+0

Vielen Dank eine Million, das ging mir wirklich auf die Nerven. Jetzt kann ich endlich das angehängte Bild sehen. Jetzt müssen Sie nur herausfinden, wie Sie es tatsächlich in ein img-Tag von einem Puffer einbetten und alles fertig ist. Würdest du zufällig wissen, wie das geht? – AdelaN

+0

@AdelaN, können Sie diesen Puffer zu base64 konvertieren und an das img-Tag übergeben – roneo

+1

Versucht, dass, hat nicht funktioniert. Was schließlich funktionierte, war es, die 'src' mit der Inhaltskennung, d. H.' '... – AdelaN

Verwandte Themen