最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

我如何在Node js的帮助下从angular发送电子邮件模板

IT培训 admin 8浏览 0评论

我如何在Node js的帮助下从angular发送电子邮件模板

我想通过angular和node js发送电子邮件模板。我正在从angular获取值。我正在尝试使用angular和node js发送电子邮件模板,但我无法发送邮件。节点js代码在下面

server.js

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

// Init应用

const app = express();

//交叉连接

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

// Body解析器中间件

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

});

这是发送电子邮件模板的代码。我从角度获取值并发送到节点文件。

回答如下:

您应授予此服务中用于发送电子邮件的电子邮件地址的权限。

我如何在Node js的帮助下从angular发送电子邮件模板

我想通过angular和node js发送电子邮件模板。我正在从angular获取值。我正在尝试使用angular和node js发送电子邮件模板,但我无法发送邮件。节点js代码在下面

server.js

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

// Init应用

const app = express();

//交叉连接

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

// Body解析器中间件

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

});

这是发送电子邮件模板的代码。我从角度获取值并发送到节点文件。

回答如下:

您应授予此服务中用于发送电子邮件的电子邮件地址的权限。

发布评论

评论列表 (0)

  1. 暂无评论