【问题标题】:How to apply cdnjs css or external css to nodemailer html template using jade & express如何使用jade&express将cdnjs css或外部css应用于nodemailer html模板
【发布时间】:2017-08-21 12:21:33
【问题描述】:

我正在尝试使用节点邮件程序发送邮件。通过外部文件从jade模板获取html标记。外部文件html使用文件流编译并正确呈现,而通过ma​​xcdn或cdnjs插入的样式没有反映

在这种情况下如何应用 css 或者是否有任何其他替代方式来实现这种情况。

翡翠模板

doctype html
html
  head
    title Application confirmation
    link(rel='stylesheet', type='text/css', href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css')
  body
    .container
      .row
        .col-md-4
          p Thank you for registering with us you applucation submitted succesfully
      .row
        .col-md-4
          p Thanks,
          p SnapCode Team

节点服务器代码

var nodemailer = require('nodemailer');
var config_urls = require("../configfile");
var fs = require('fs');
var jade = require('jade');


function readFile() {
    var template = process.cwd() + '/public/mailTemplate/confirmation.jade';
    console.log('template', template);
    fs.readFile(template, 'utf-8', function(err, file) {
        if (err) {
            console.log('Template file not found!', template);
        } else {
            var compiledTmpl = jade.compile(file, { filename: template });
            htmlToSend = compiledTmpl(context);
            return htmlToSend;
        }
    });
}


module.exports = {

    SendMail: function(email, app_id, callback) {
        var template = process.cwd() + '/public/mailTemplate/confirmation.jade';
        fs.readFile(template, 'utf-8', function(err, file) {
            if (err) {
                console.log('Template file not found!', template);
            } else {
                var compiledTmpl = jade.compile(file, { filename: template });
                htmlToSend = compiledTmpl(context);

                var transporter = nodemailer.createTransport({
                    host: config_urls.url.host,
                    port: config_urls.url.port,
                    secure: true, 
                    auth: {
                        user: config_urls.url.gmailID,
                        pass: config_urls.url.gmailPassword
                    }
                });

                var mailOptions = {
                    from: config_urls.url.gmailID, 
                    to: email, 
                    subject: 'Application Confirmation', 
                    html: htmlToSend
                };

                transporter.sendMail(mailOptions, function(error, info) {
                    if (error) {
                        console.log(error);
                        return callback(Result = "false");
                    }
                    console.log('Message sent: ' + info.response);
                    return callback(Result = "true");
                });
            }
        });
    },
}; //end of function

【问题讨论】:

    标签: javascript html node.js email express


    【解决方案1】:

    据我所知,无论是 PHP 邮件功能还是节点邮件功能(我都尝试过并使用过),我们无法添加外部 css。我们所能做的就是在需要的地方编写内联样式或编写类似

    的样式
    <style>
     //styles here
    </style>
    

    我希望这会有所帮助。请务必让我更新。谢谢。

    【讨论】:

    • @krishna-m 如果它是一个自定义 css,我们可以考虑 bootstrap 或基础 css,你会将整个 css 复制并粘贴到样式标签中吗??
    • @rselvaganesh 这会增加电子邮件的分量。我宁愿最低限度地使用它们。但是我很确定你不能链接到外部 CSS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多