Nodemailer电子邮件正文

时间:2018-03-07 14:05:18

标签: html node.js nodemailer

我正在使用nodemailer发送电子邮件。我想在客户端收到的电子邮件正文中显示一些数据。在电子邮件正文中,数据被视为字符串,其值不打印。

代码是:

let mailOptions = {
                from: 'me.waleed28@gmail.com', // sender addressl
                to: 'waleed.shahzaib@nxb.com.pk', // list of receivers
                cc: '',            
                subject: 'Hello ✔', // Subject line
                // text: 'Hello world?', // plain text body                
                html: `<b>Hello World?</b>
                    <h3>data.resourceName</h3>
                `
            };

数据是一个包含多个字段的对象,但是当我打印时,例如data.resourceName它打印它,因为它不是它的值。它把它当成一根绳子。我是否需要更改其mimetype或其他内容?请告诉我们如何解决这个问题。感谢

3 个答案:

答案 0 :(得分:1)

由于您使用的是模板文字,因此需要将promiseReturningFunction(data); .then((result) => { doStuff(result); }) .then(()=>promiseReturningFunction2(data2)) .then((result2) => { doStuff(result2); }) .catch((err)=> /* Error handling **/); 包裹起来:data.resourceName

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

答案 1 :(得分:1)

我同意上述答案,即您缺少模板文字语法,这可能是您的问题。我将我的数据从客户端传递到电子邮件的模板,该模板只是一个大模板文字并解析模板内部的数据属性。

Mail Client

Email as template literal

答案 2 :(得分:0)

除上述答案外,我认为您不想使用模板。虽然,你应该考虑使用模板库,如把手,胡子等。

如果没有,请按以下步骤操作:

let mailOptions = {
                from: 'me.waleed28@gmail.com', // sender addressl
                to: 'waleed.shahzaib@nxb.com.pk', // list of receivers
                cc: '',            
                subject: 'Hello ✔', // Subject line
                // text: 'Hello world?', // plain text body                
                html: `<b>Hello World?</b><br><h3>' + data.resourceName + '</h3>`
            };