在nodemailer的文本部分添加各种字段

Add various fields in the text section of nodemailer

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

的邮件中

所以邮件内容应该是

请帮帮我。

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)
    );
})

如 NodeMailer doc 中所述,您可以选择:

使用 messagetext 元素发送 "the plaintext version of the message"

使用 messagehtml 元素发送 "the HTML version of the message"。


例如,如果您使用 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;
});

请注意在代码中添加了几个 return,有关此关键方面的更多信息,请参阅 https://firebase.google.com/docs/functions/terminate-functions