Добавьте различные поля в текстовом разделе nodemailer - PullRequest
0 голосов
/ 10 марта 2020

Я отправляю почту из моего angular приложения, используя nodemailer. У меня есть переменная, которая имеет несколько атрибутов, таких как firstname, middlename, email, mobile, address. Я извлекаю эти данные из firebase, и к каждой переменной можно обратиться, написав $data.firstname, $data.email. Я смог отправить только 1 переменную прямо сейчас. Я хочу отправить все переменные на почту с метками

Поэтому содержимое почты должно быть

  • Электронная почта - abc@123
  • Имя - AB C
  • Адрес - LMN
  • Мобильный - 7777777777

Пожалуйста, помогите мне.

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

1 Ответ

1 голос
/ 10 марта 2020

Как объяснено в NodeMailer do c, вы можете выбирать между:

, используя элемент message text для отправки "незашифрованной версии сообщения" «

ИЛИ

с использованием элемента message 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;
});

Обратите внимание на добавление нескольких return с в коде, см. https://firebase.google.com/docs/functions/terminate-functions для получения дополнительной информации по этому ключевому аспекту.

...