Как я могу отправить шаблоны электронной почты из Angular с помощью узла JS - PullRequest
1 голос
/ 20 сентября 2019

Я хочу отправлять шаблоны электронной почты через угловые и узлы js.Я получаю значения из Angular. Я пытаюсь отправить шаблон электронной почты, используя Angular и узел JS, но я не могу отправить письмо.код узла js ниже

server.js

const nodemailer = require('nodemailer'),
express = require('express');
cors = require('cors');
const bodyParser = require('body-parser');
const details = require("./details.json");

// Инициативное приложение

const app = express();

// Кросс-соединение

app.use(cors({ origin: "*" }));

// Middleware анализатора тела

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

// Определение порта

port = 3000;

// запуск сервера

 app.listen(port, function(){
    console.log(`Server is running at port: ${port}`);
});

transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: details.email,
        pass: details.password,
    },
}),
EmailTemplate = require('email-templates').EmailTemplate,
path = require('path'),
Promise = require('bluebird');

function sendEmail (obj) {
    return transporter.sendMail(obj);
}

// Функция для выбора шаблона

function loadTemplate (templateName, contexts) {
let template = new EmailTemplate(path.join(__dirname, 'templates', 
templateName));
return Promise.all(contexts.map((context) => {
    return new Promise((resolve, reject) => {
        template.render(context, (err, result) => {
            if (err) reject(err);
            else resolve({
                email: result,
                context,
            });
        });
    });
}));
}

// Получить значения из Angular

app.post('/sendmail', function (req, res){
let rgData = req.body;

loadTemplate('registration', rgData).then((results) => {
    return Promise.all(results.map((result) => {
        sendEmail({
            to: result.context.email,
            from: 'Felix Its :)',
            subject: result.email.subject,
            html: result.email.html,
            text: result.email.text,
        });
    }));
}).then(() => {
    console.log('Email Successfully Sent');
});


transporter.sendMail(mailOptions, (error, info) => {
      if (error) {
        return console.log(error);
      }
      console.log('Message %s sent: %s', info.messageId, info.response);
        res.render('index');
});

});

это код для отправки шаблона электронной почты .. я получаю значения из angular и отправьте в файл узла.

1 Ответ

0 голосов
/ 28 сентября 2019

Вы должны предоставить разрешения для адреса электронной почты, используемого в этой службе для отправки писем.

...