Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用nodeEmailer和handlebar在邮件中收到的html样式丢失_Javascript_Node.js_Handlebars.js_Nodemailer - Fatal编程技术网

Javascript 使用nodeEmailer和handlebar在邮件中收到的html样式丢失

Javascript 使用nodeEmailer和handlebar在邮件中收到的html样式丢失,javascript,node.js,handlebars.js,nodemailer,Javascript,Node.js,Handlebars.js,Nodemailer,我正在发送一个cucumber\u report.html文件以显示在电子邮件正文中。我正在使用nodemailer和handlebar来实现这一点。它在邮件中显示html的内容,没有样式(请参考最后的屏幕截图)。有没有任何方法可以在电子邮件中显示css样式 发送前的原始cucumber\u report.html 邮件中显示的Html内容,我丢失了所有样式: 您需要插入css内联。外部css不太可能工作。这可能是因为一些客户端可以阻止外部源。当我检查css时,我可以看到它是作为HTML样式

我正在发送一个
cucumber\u report.html
文件以显示在电子邮件正文中。我正在使用
nodemailer
handlebar
来实现这一点。它在邮件中显示html的内容,没有样式(请参考最后的屏幕截图)。有没有任何方法可以在电子邮件中显示css样式

发送前的原始
cucumber\u report.html

邮件中显示的Html内容,我丢失了所有样式:

您需要插入css内联。外部css不太可能工作。这可能是因为一些客户端可以阻止外部源。当我检查css时,我可以看到它是作为HTML样式部分下的内联css编写的。在Chrome中打开电子邮件,使用DevTools检查HTML元素和css。你应该能自己找出问题所在。如果没有,复制html标记之间的所有内容并将其添加到您的问题中,或者如果代码太多,则将其放置在公共位置(codepen、JSFIDLE等),以便我们检查。我已将JSFIDLE添加到html中。小提琴看起来不错。当我检查邮件陷阱时,我发现添加的html被包装在#文档中。我无法将整个iframe内容复制到JSFIDLE中。@Molda我已经更新了问题,请看一下,
const nodemailer = require('nodemailer');
var handlebars = require('handlebars');
var fs = require('fs');


var readHTMLFile = function(path, callback) {
    fs.readFile(path, {encoding: 'utf-8'}, function (err, html) {
        if (err) {
            throw err;
            callback(err);
        }
        else {
            callback(null, html);
        }
    });
};

let transport = nodemailer.createTransport({
    host: 'smtp.mailtrap.io',
    port: 2525,
    auth: {
       user: 'user_name',
       pass: 'some_password'
    }
});


readHTMLFile(__dirname + '/reports/html_simple/cucumber_report.html', function(err, html) {
    var template = handlebars.compile(html);
    var replacements = {
         username: "Some thing"
    };
    var htmlToSend = template(replacements);
    var mailOptions = {
        from: 'from@testgroup.com',
        to : 'to@sometestgroup.com',
        subject : 'Test Report',
        html : htmlToSend,
        attachments: [
             { 
                filename: 'cucumber_report.html',
                path: 'reports/html_simple/cucumber_report.html'
             }
         ]
     };
     transport.sendMail(mailOptions, function (error, response) {
        if (error) {
            console.log(error);
            callback(error);
        } else {
            console.log(response);
          }
    });
});