当前位置: 首页 > 面试题库 >

如何在Node.js中将HTML页面作为电子邮件发送

仲孙翔飞
2023-03-14
问题内容

我最近开始编程我的第一个node.js。我找不到从节点能够发送HTML页面作为电子邮件的任何模块。请帮忙,谢谢!


问题答案:

我一直在使用此模块:https :
//github.com/andris9/Nodemailer

更新了示例(使用express和nodemailer),包括从文件系统获取index.jade模板并将其作为电子邮件发送:

var _jade = require('jade');
var fs = require('fs');

var nodemailer = require("nodemailer");

var FROM_ADDRESS = 'foo@bar.com';
var TO_ADDRESS = 'test@test.com';

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "bar@foo.com",
        pass: "PASSWORD"
    }
});

var sendMail = function(toAddress, subject, content, next){
  var mailOptions = {
    from: "SENDERS NAME <" + FROM_ADDRESS + ">",
    to: toAddress,
    replyTo: fromAddress,
    subject: subject,
    html: content
  };

  smtpTransport.sendMail(mailOptions, next);
};

exports.index = function(req, res){
  // res.render('index', { title: 'Express' });

  // specify jade template to load
  var template = process.cwd() + '/views/index.jade';

  // get template from file system
  fs.readFile(template, 'utf8', function(err, file){
    if(err){
      //handle errors
      console.log('ERROR!');
      return res.send('ERROR!');
    }
    else {
      //compile jade template into function
      var compiledTmpl = _jade.compile(file, {filename: template});
      // set context to be used in template
      var context = {title: 'Express'};
      // get html back as a string with the context applied;
      var html = compiledTmpl(context);

      sendMail(TO_ADDRESS, 'test', html, function(err, response){
        if(err){
          console.log('ERROR!');
          return res.send('ERROR');
        }
        res.send("Email sent!");
      });
    }
  });
};

我可能会将邮件程序部分移至其自己的模块,但是我在此处包括了所有内容,因此您可以一起看到它们。



 类似资料:
  • 问题内容: 我最近开始编程我的第一个node.js。但是,我发现我无法创建直接发送到我的电子邮件的“联系我”表单,因为我无法从能够发送电子邮件的节点中找到任何模块。 有人知道node.js电子邮件库或示例联系表单脚本吗? 问题答案: node-email-templates是一个更好的选择:https : //github.com/niftylettuce/node-email- template

  • 问题内容: 我已经使用JMS在Web应用程序中成功发送了电子邮件,但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做?这大致就是我所拥有的: 问题答案: 根据Javadoc,在需要时,这些设置将默认的mime类型设置为。而是使用代替。

  • 问题内容: 我可以使用msdb.dbo.sp_send_dbmail以html格式发送电子邮件。仅在格式方面对文本非常好。例如: 但是,如果要包括从SQL服务器上的数据生成的趋势之类的图像并将其嵌入html(@emailHTML)中,应该使用哪个html标签? 如果使用[img]标记,则需要设置src属性。生成的图像保存在本地SQL Server的硬盘中。我可以将它们放在IS服务器网页区域中。但是

  • 我已经看到了一些关于堆栈溢出的类似问题,但我找不到解决这些问题的方法。 我正在尝试使用Python发送一封带有。pdf附件。当我在gmail上查看邮件时,它似乎工作正常。但是当我通过苹果的邮件程序查看邮件时,我没有看到附件。知道是什么原因吗? 我的代码如下。很多都是从stack overflow上的不同位置复制的,所以我不完全理解每个部分在做什么,但它似乎(大部分)起作用: 我不确定它是否相关,但

  • 问题内容: 如何使用PHP发送带有图片的HTML格式的电子邮件? 我想要一个带有一些设置和HTML输出的页面,该页面通过电子邮件发送到一个地址。我该怎么办? 主要问题是附加文件。我怎样才能做到这一点? 问题答案: 非常简单,将图像保留在服务器上,然后将PHP + CSS发送给它们… 正是这一行告诉邮件发件人和收件人,该电子邮件包含(希望)格式正确的HTML,需要对其进行解释: 这是我获得信息的链接

  • 如何使用PHP发送带有图片的HTML格式的电子邮件? 我想有一个网页与一些设置和HTML输出,通过电子邮件发送到一个地址。我该怎么办? 主要问题是附加文件。我怎么能那样做?