Tag: nodemailer

用EJS在asynchronousfs.readFile的callback中呈现HTML模板?

我很容易用fs.readFileSync完成这个工作,但是我想这样做是asynchronous的。 我的代码如下。 function send(err, str){ if(err){ console.log(err); } var template = ejs.render(str, 'utf8', {name: data.name}); transporter.sendMail({ from: myEmail, to: anotherEmail, subject: mySubject, html: template, attachments: images }, function(err, response) { if(err){ console.log(err); } }); } fs.readFile('emailTemplate.ejs', send); 所以我为fs.readFile做了我自己的callback,这样当文件被读取后,它将呈现电子邮件,把正确的名称放入然后用nodemailer发送出去。 但是,它不喜欢这个。 如果没有问题,它会得到错误,但是当渲染模板时呈现下列错误。 TypeError:Object(跟在模板的整个HTML之后)在导出时在Object.exports.parse(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:144:21)处没有方法“indexOf”。编译(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:229:15)在Object.exports.render(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:289:10 )在fs.readFile(fs.js:272:14)上发送(/home/ubuntu/workspace/routes/email.js:171:28)在Object.oncomplete(fs.js:108:15) 这样做虽然同步工作正常。 var str = fs.readFileSync('emailTemplate.ejs', 'utf8'); var template = ejs.render(str, { name: data.name […]

尝试用邮件发送邮件,错误

试过下面的mailgun的nodejs教程 ,但是我得到这个错误: error { [Error: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>404 Not Found</title> <h1>Not Found</h1> <p>The requested URL was not found on the server.</p><p>If you entered the URL manually please check your spelling and try again.</p> ] statusCode: 404 } undefined 我在节点服务器中使用的代码如下所示: var express = require("express"); var expressApp = express(); var server = […]

如何启用错误在Nodemailer中,如果电子邮件不存在

nodemailer:“^ 2.4.2” 我使用nodemailer发送邮件。 这工作正常。 但是,当使用不存在的电子邮件,我没有得到任何错误: 我有代码为; exports.sendMail = function (req, resp, reqBody, callback) { var smtpTransport = nodemailer.createTransport(settings.smtpConfig); var data = JSON.parse(reqBody); var mailOptions={ to : data.toAddress, cc : data.ccAddress, bcc : data.bccAddress, subject : data.subject, html : data.message } smtpTransport.sendMail(mailOptions, function(error, response){ if (error) { callback(null, error); }else{ callback(response); } }); }; 所以,如果我使用任何不存在的电子邮件ID它不会抛出任何错误; 例如:如果我发送到地址为“dummy@gmail.com” […]

使用nodemailer发送邮件后调用res.sendStatus()

所以我在express.js实现了一个POST请求处理程序: .post(function(req, res) { ((data selection and processing from mongo…)) var bcast = mailer.prepareBcast(data[0]); mailer.send(bcast).then( function(success) { console.log(success); res.sendstatus(200); }, function(error) { console.error(error); res.sendStatus(555); } ); ((…)) }); 通过mailer.send()方法发送电子邮件,执行success-callback ,并输出successvariables内容,这是来自nodemailer(与gmail transporter一起使用)的返回值。 问题是res.sendStatus(200)没有执行,我的前端等待发送邮件成功(或不成功)的确认。 我在这里做错了什么? 发送邮件后,我可能不能发回任何东西? 如果这是一个明显的问题,我还是相当新的节点,所以很抱歉…

没有收到来自emailjs和smtp服务器的电子邮件 – Nodejs

我正在尝试构build一个应用程序,在触发某些事件时发送电子邮件。 我没有收到任何错误,但没有收到我的邮箱的电子邮件。 这是代码: SMTP: var SMTPServer = require('smtp-server').SMTPServer; var server = new SMTPServer({ secure: false, authOptional: true }); server.listen(465); emailjs: var email = require('emailjs'); var emailServer = email.server.connect({ host: 'localhost', port: 465, ssl: false }); emailServer.send({ text: 'Hey howdy', from: 'NodeJS', to: 'Wilson <person@gmail.com>', cc: '', subject: 'Greetings' }, function (err, message) { console.log(err || […]

电子邮件使用React和Node js发送应用程序

我正在使用React和Node js创build一个电子邮件发送应用程序。 我正在使用Nodemailer发送电子邮件。 要在电子邮件正文中获得丰富的HTML和CSS,我正在使用React js构build电子邮件正文。 所以,一旦body被React js渲染,它可以通过Nodemailer作为html发送。 到目前为止,我已经能够设置Nodemailer为简单的文本,附件工作。 我已经在email.jsx中构build了电子邮件正文(使用响应式HTML)。 我已经把路由('/发送'),看看它实际上看起来如何在服务器端。 我面临的问题是如何编译我创build的.jsx模板,并使用Nodemailer将其作为html发送。 我知道我们可以确定使用Hogan来做到这一点,如果它的.hjs文件。 但是我怎样才能达到同样的.jsx文件。 由于我是React js的新手,请耐心等待。 这是email.jsx。 我已经使用了反应js来构build具有物化页眉和页脚的电子邮件的正文。 email.jsx var React = require('react'); var Layout = require('./layout'); class Email extends React.Component { render() { return ( <Layout title={this.props.firstName}> <Layout text={this.props.textfield}> {/* Compiled and minified CSS */} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/css/materialize.min.css" /> {/* Compiled and minified JavaScript */} […]

如何发送邮件而不使用电子邮件凭证通过nodemailer中的nodemailer npm?

我知道如何使用nodemailer发送邮件,但我使用的是电子邮件凭据,但我不想使用它。 有没有其他的方法发送邮件。 我的nodemailer代码片段是 var nodemailer = require('nodemailer'); // Not the movie transporter! var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'vikaskohli@email.com', // Your email id pass: 'password' // Your password } }); module.exports = { sendEmail: function sendMail(varhtml,vartext, varsubject,varfrom, varfrom_name,varto, varto_name, reply_to_email ) { //setup e-mail data with unicode symbols var mailOptions = { […]

Nodemailer,Heroku,Gmail,无效login – 在本地工作

过去几个星期我一直有这个问题,每次都在本地工作,但是一旦我将其部署到我的heroku服务器,它会给我一个invalid login错误。 我已经进入帐户,并获得安全性较低的应用程序。 证书是正确的,并且它每次都在localhost上运行。 有什么我失踪? quickSendMail: function(routeBody, callback) { //configuring the nodemailer for email notifications var smtpConfig = { host: 'smtp.gmail.com', port: 465, secure: true, // use SSL auth: { user: 'mysmtpemail123', pass: '******' } }; var mailOptions = { from: 'SageStorm Site <mysmtpemail123@gmail.com>', to: ['my email'], subject: routeBody.subject, html: 'my message' }; var transporter […]

NodeMailer – 使用Google服务帐户发送邮件失败,因为“用户名和密码不被接受”

我正在创build一个Twitter机器人,并且正在执行一个方法,如果发生错误,会向我发送电子邮件。 由于我已经在使用Google API访问Google云端硬盘(这里没有问题),所以我决定使用服务帐户发送电子邮件(Google控制台表示可以这样使用) 我到目前为止发送电子邮件的方法是: var config = require('./config/mail'); var google = require('./config/google'); var nodemailer = require('nodemailer'); var send = function (args) { let transporter = nodemailer.createTransport({ 'service': 'gmail', 'auth': { 'type': 'OAuth2', 'user': google.client_email, 'serviceClient': google.client_id, 'privateKey': google.private_key } }); transporter.on('token', token => console.log(token)); let message = { 'from': `"${config.serverFromName}" <${config.serverFromMail}>`, 'to': args.to, 'subject': args.subject, […]

使用nodemailer接收邮件而不设置“允许不太安全的应用程序访问”

我想问一些关于nodemailer的问题,我就像这样做代码 Var client = nodemailer.createTransport ({ Service: 'gmail', Auth: { User: 'example@gmail.com', // Your email address Pass: '123' // Your password}, Tls: {rejectUnauthorized: false} }); 这工作,但成功交付后,当我必须接收已发送的电子邮件,我需要启用Gmail的设置,如“允许不太安全的应用程序访问”。 我不想设置它。 那么如何将example@gmail.com的电子邮件发送到example1@gmail.com,而不需要设置“允许不太安全的应用程序访问”,并直接在电子邮箱中接受邮件!! ??? 或者应该添加任何其他插件? THANX;)