Node.js 在NodeEmailer的文本部分添加各种字段

Node.js 在NodeEmailer的文本部分添加各种字段,node.js,firebase,google-cloud-firestore,google-cloud-functions,nodemailer,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,Nodemailer,我正在使用nodemailer从我的angular应用程序发送邮件。我有一个变量,它有几个属性,比如firstname,middlename,email,mobile,address。我正在从firebase获取这些数据,每个变量都可以通过写入$data.firstname,$data.email来访问。我现在只能发送1个变量。我想将所有变量发送到带有标签的邮件 所以邮件内容应该是 电邮-abc@123 名字-ABC 地址-LMN 移动电话-7777 请帮帮我 const functions

我正在使用nodemailer从我的angular应用程序发送邮件。我有一个变量,它有几个属性,比如
firstname
middlename
email
mobile
address
。我正在从firebase获取这些数据,每个变量都可以通过写入
$data.firstname
$data.email
来访问。我现在只能发送1个变量。我想将所有变量发送到带有标签的邮件

所以邮件内容应该是

  • 电邮-abc@123
  • 名字-ABC
  • 地址-LMN
  • 移动电话-7777
请帮帮我

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const nodemailer = require('nodemailer');
admin.initializeApp()
require('dotenv').config()


const {SENDER_EMAIL, SENDER_PASS} = process.env;

exports.sendMailNotification1=functions.firestore.document('submissions/{docID}')
.onCreate((snap, ctx)=> {
    const data=snap.data();

    let authData=nodemailer.createTransport({
        host: 'smtp.gmail.com',
        port: 465,
        secure:true,
        auth:{
            user: SENDER_EMAIL,
            pass: SENDER_PASS
        }
    });
    authData.sendMail({
        from: 'xxx@gmail.com',
        to: 'xyz@gmail.com',
        subject: 'Appointment Info ',
        text:`${data.fname}`,
        html:`${data.email}`,
    }).then(res=>console.log('Succesfully Sent')).catch(err=> console.log(err)
    );
})

如nodeEmailer中所述,您可以选择:

使用
消息
文本
元素发送“消息的纯文本版本”

使用
消息
html
元素发送“消息的html版本”


例如,如果使用HTML选项,可以使用如下HTML列表:

//...
const htmlContent = `<ul><li>Email - ${data.email}</li><li>Address - ${data.address}</li></ul>`;

return authData.sendMail({
        from: 'xxx@gmail.com',
        to: 'xyz@gmail.com',
        subject: 'Appointment Info',
        html: htmlContent
    })
.then(res => {
       console.log('Succesfully Sent');
       return null;
})
.catch(err => {
       console.log(err);
       return null;
});
/。。。
const htmlContent=`
  • 电子邮件-${data.Email}
  • 地址-${data.Address}
    • `; 返回authData.sendMail({ 发件人:'xxx@gmail.com', 致:'xyz@gmail.com', 主题:“约会信息”, html:htmlContent }) 。然后(res=>{ console.log(“成功发送”); 返回null; }) .catch(错误=>{ 控制台日志(err); 返回null; });


注意在代码中添加了几个
return
s,有关这一关键方面的更多信息,请参阅。

如NodeEmailer中所述,您可以选择:

使用
消息
文本
元素发送“消息的纯文本版本”

使用
消息
html
元素发送“消息的html版本”


例如,如果使用HTML选项,可以使用如下HTML列表:

//...
const htmlContent = `<ul><li>Email - ${data.email}</li><li>Address - ${data.address}</li></ul>`;

return authData.sendMail({
        from: 'xxx@gmail.com',
        to: 'xyz@gmail.com',
        subject: 'Appointment Info',
        html: htmlContent
    })
.then(res => {
       console.log('Succesfully Sent');
       return null;
})
.catch(err => {
       console.log(err);
       return null;
});
/。。。
const htmlContent=`
  • 电子邮件-${data.Email}
  • 地址-${data.Address}
    • `; 返回authData.sendMail({ 发件人:'xxx@gmail.com', 致:'xyz@gmail.com', 主题:“约会信息”, html:htmlContent }) 。然后(res=>{ console.log(“成功发送”); 返回null; }) .catch(错误=>{ 控制台日志(err); 返回null; });


请注意,代码中添加了几个
return
s,有关这一关键方面的更多信息,请参阅。

我不太清楚,但您是否有用户输入这些数据的联系表单?是的,我有表单,用户输入数据。我应该把数据发送给某个X个人的邮件。因此,我是在nodemailer的帮助下完成这项工作的。首先,我将表单数据发送到firebase,然后通过上述函数sendEmailNotification的帮助,我将发送邮件。问题是我只能发送1个变量<代码>$data.email。但是我想发送所有的变量我不确定我是否理解,但是你有一个用户输入这些数据的联系表单吗?是的,我有一个表单,用户输入数据。我应该把数据发送给某个X个人的邮件。因此,我是在nodemailer的帮助下完成这项工作的。首先,我将表单数据发送到firebase,然后通过上述函数sendEmailNotification的帮助,我将发送邮件。问题是我只能发送1个变量<代码>$data.email。但是我想把所有的变量都发送给你,请你也帮我回答这个问题。。你能帮我回答这个问题吗。。