标签: nodemailer

NodeMailer无效登录

我是node.js编程的新手.我正在使用nodemailer模块发送电子邮件.

const nodemailer = require ('nodemailer'),
credentials=require('./credentials.js');
var mailTransport=nodemailer.createTransport({
    service:'Gmail',
    auth: {
        user : credentials.gmail.user,
        pass : credentials.gmail.password,
    }
});
function sendMail(mail_id){
    mailTransport.sendMail({
        from: ' "my name" <myname@gmail.com>',
        to : mail_id,   //user@gmail.com
        subject : 'Hello',
        text: "Hello How do u do ?",
    },function(err,info){
        if(err){
            console.log('Unable to send the mail :'+err.message);
        }
        else{
            console.log('Message response : '+info.response);
        }
    });
}
exports.sendMail=sendMail;
Run Code Online (Sandbox Code Playgroud)

这是我向不同用户发送电子邮件的程序.但我得到无效登录.我不知道为什么会这样.我是node.js和服务器端脚本的新手.
我正在使用我的gmail用户名和密码来获取凭据.
请帮我.

javascript smtp server-side node.js nodemailer

16
推荐指数
5
解决办法
2万
查看次数

使用nodemailer发送ejs模板

我正在尝试使用express.js构建一个Web应用程序.在我的应用程序中,我使用nodemailer发送邮件.如果我只是用它来发送基本邮件就可以了; 但是,当我尝试使用nodemailer发送呈现的ejs文件时,收件人只会收到一封空邮件.所以在这里我的代码的细节:

var transporter = nodemailer.createTransport({
                host: 'smtp.zoho.com',
                port: 465,
                secure: true, // use SSL
                auth: {
                    user: 'testmail@zoho.com',
                    pass: '123456'
                }
            });
fs.readFile('/test.ejs', 'utf8', function (err, data) {
                if (err) {
                    return console.log(err);
                }
                var mainOptions = {
                    from: '"Tester" testmail@zoho.com',
                    to: email,
                    subject: 'Hello, world'
                    html: ejs.render(data, {name: 'Stranger'});
                };
                console.log(mainOptions.html);
});
transporter.sendMail(mainOptions, function (err, info) {
                            if (err) {
                                console.log(err);
                            } else {
                                console.log('Message sent: ' + info.response);
                            }
                        });
Run Code Online (Sandbox Code Playgroud)

这里的test.ejs(也就是结果console.log(mainOptions.html)很好,因为它正确地打印出渲染的ejs文件的字符串(<%= name%>替换为'Stranger')

<style type="text/css">
  .header {
    background: …
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js express nodemailer

14
推荐指数
2
解决办法
5918
查看次数

使用Sendgrid/Nodemailer将Angular表单数据发布到Node.js

我已按照此示例将我的Angular应用程序中的数据发布到Node.js,以将webform发布到Sendgrid.这在一些变化后工作正常,并且非常感谢快速入门.将表单数据发布到Sendgrid现在正在运行!

对于这个项目我正在使用Angular Fullstack来在我的Angular应用程序中使用Node功能.

但是,此示例只包含输入字段和textarea.我希望能够添加文件(PDF,Docx等),以便人们可以通过Sendgrid向收件人发送附件.我搜索了一个解决方案,但找不到一个有效的例子.也许是因为我不想实现的目标.

我的观点(客户):

<div ng-controller="ContactFormCtrl" id="contactformbox" style="margin-top:50px;" class="mainbox" >                    
  <div class="panel panel-info" >

          <div class="panel-heading">
              <div class="panel-title">Solliciteer direct</div>
          </div>     

          <div style="padding-top:30px" class="panel-body" >
              <form id="loginform" class="form-horizontal" role="form" name="contactform">

                  <div style="margin-bottom: 25px" class="input-group">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                    <input type="email" name="to" ng-model="email.to" ng-required="true" id="email-to" class="form-control" name="username" value="" placeholder="The emailadres from the employer">       
                  </div>

                  <div style="margin-bottom: 25px" class="input-group">
                      <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                      <input type="email" name="from" ng-model="email.from" ng-required="true" id="email-from" class="form-control" name="email-from" placeholder="Your e-mail address">
                  </div>

                  <div style="margin-bottom: 25px" …
Run Code Online (Sandbox Code Playgroud)

javascript node.js sendgrid angularjs nodemailer

13
推荐指数
1
解决办法
2160
查看次数

SendGrid-nodejs还是Nodemailer?

至少有两种使用SendGrid从Nodejs发送电子邮件的方法:

  1. Sendgrid提供了一个名为"SendGrid-nodejs"的Nodejs库.他们积极支持Sendgrid-Nodejs(29天前的最后更新).
  2. Nodemailer支持sendgrid,似乎非常受欢迎.SendGrid发布了一篇关于使用此组合的文章:使用Nodemailer和Sendgrid发送电子邮件.

编辑2

截至今天,SendGrid已经终止了对nodemailer-sendgrid-transport的支持.

所以,如果你现在开始一个项目,我会建议使用sendgrid-nodejs.


原始问题:

编辑以减少基于意见的问题:每种方法的优缺点是什么?我用谷歌搜索了几天,没看到两者的比较.还有另一个StackOverflow 问题要求区分两者(在其他几件事情中)没有得到答复.所以肯定这个问题的答案将有助于其他人.

我的具体用法,如果它有助于集中答案:我想允许iPhone应用程序的用户邀请其他人使用该应用程序.他们会在应用中看到默认的邀请文字,并可以对其进行自定义.自定义文本将发送到我的Nodejs服务器并添加到作业队列.处理队列时,会发送电子邮件.我希望电子邮件看起来不错,所以我想使用HTML电子邮件模板(以及明文交替主体).

在规模方面,这将开始非常小,但如果应用程序是succssful可以迅速扩大.

node.js sendgrid nodemailer

12
推荐指数
2
解决办法
5206
查看次数

node.js nodemailer gmail错误

我试图使用node.js - nodemailer模块发送电子邮件,我的整个代码看起来像

var http=require("http");
var nodemailer=require("nodemailer");

http.createServer(function(req,res){
     res.writeHead(200, {"Content-Type": "text/plain"});
     var transporter = nodemailer.createTransport('SMTP',{
    service: 'gmail',
    auth: {
        user: 'myemail@gmail.com', // my mail
        pass: 'mypassword'
    }
});
var mailOptions = {
    from: 'Fred Foo ? <foo@blurdybloop.com>', // sender address 
    to: 'myemail@gmail.com', // the same mail = want to send it to myself
    subject: 'Hello ?', // Subject line 
    text: 'Hello world ?', // plaintext body 
    html: '<b>Hello world ?</b>' // html body 
};
    transporter.sendMail(mailOptions, function(error, info){
    if(error){
        return console.log(error); …
Run Code Online (Sandbox Code Playgroud)

javascript gmail node.js nodemailer

12
推荐指数
1
解决办法
1万
查看次数

如何在 nodemailer 中定义自定义域电子邮件?

我正在尝试使用 Nodejs 包 Nodemailer 发送电子邮件,但我无法将电子邮件从电子邮件更改为我的自定义域电子邮件。任何帮助将不胜感激。这是我用来发送电子邮件的代码。

transporter.sendMail({
   from: 'support@domain.com',
   to: 'recipient@example.com',
   subject: 'Message',
   text: 'I hope this message gets through!',
   auth: {
            user: 'zeshanvirk@gmail.com'
         }
});
Run Code Online (Sandbox Code Playgroud)

node.js nodemailer

12
推荐指数
1
解决办法
1万
查看次数

NodeMailer没有定义的收件人

尝试使用nodemailer从node.js服务器发送电子邮件时,出现以下错误:

ERROR: Send Error: No recipients defined
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

客户端:

var mailData = {
        from: "myemail@gmail.com",
        to: "someoneelse@something.com",
        subject: "test",
        text: "test email"
    };

  $.ajax({
        type: 'POST',
        data: mailData,
        contentType: 'application/json',
        url: 'http://localhost:8080/sendEmail',
        success: function(mailData) {
            console.log('successfully posted to server.');
        }
    });
Run Code Online (Sandbox Code Playgroud)

服务器端:

var nodemailer = require('nodemailer');

app.post('/sendEmail', function(mailData) {

   var transporter = nodemailer.createTransport({
       service: 'gmail',
       auth: {
           user: 'myemail@gmail.com',
           pass: 'mypassword'
       },
   });

   transporter.sendMail(mailData, function(error, info) {
       if (error) {
           console.log(error);
           return;
       }
       console.log('Message sent');
       transporter.close();
   });

});
Run Code Online (Sandbox Code Playgroud)

这与nodemailer文档一致,并且SMTP握手总是成功完成,因此我知道这不是传输器对象的问题.

node.js nodemailer

11
推荐指数
1
解决办法
1万
查看次数

通过nodemailer发送的电子邮件进入垃圾邮件以获取Gmail

我通过nodemailer发送电子邮件,如果我从本地服务器运行,它进入Gmail的收件箱,但如果我从microsoft azure服务器运行脚本,则进入gmail的垃圾邮件.以下是我的脚本

var nodemailer = require('nodemailer');
var EmailTemplates = require('swig-email-templates');
var smtpConfig =  {
        service: 'smtp.office365.com',
        host: 'smtp.office365.com',
        port: 587,
        starttls: {
            enable: true
        },
        secureConnection: true,
        auth: {
            user: 'xxxxx@yyyy.com',
            pass: 'zzzzzz'
        }
    }

var templates = new EmailTemplates();  
var transporter = nodemailer.createTransport(smtpConfig);   

var context = {
  username:'Rajesh',
  email:'xxxxx@gmail.com',
  link : 'www.google.co.in'
};

templates.render('activate_email.html', context, function(err, html,text, subject) {    

  transporter.sendMail({
    from: '"Product Name" <no-reply@xxxxx.com>', // sender address
    to: 'xxxx@gmail.com',
      subject: 'Account activation',
      html: html,
      text:text    
  });    
});
Run Code Online (Sandbox Code Playgroud)

email gmail spam node.js nodemailer

11
推荐指数
4
解决办法
7173
查看次数

将图像嵌入电子邮件正文nodemailer nodejs中

我正在遵循nodemailer社区网站中使用的方法, 但我似乎无法让它工作,因为我收到错误

   Failed to send email { Error: ENOENT: no such file or directory, open 
'./rello-logo-full-svg.svg'
 errno: -2,
  code: 'ESTREAM',
  syscall: 'open',
  path: './rello-logo-full-svg.svg',
  command: 'API' }
Run Code Online (Sandbox Code Playgroud)

nodemailer选项如下

    let mailOptions = {
        from: '<from_email>', 
        to: to_email_address.toString(),
        subject: 'Subject',
        text: 'Hello world', // plain text body
        attachments: [{
          filename: 'rello-logo-full-svg.svg',
          path: './rello-logo-full-svg.svg',
          cid: 'unique@cid'
      }],
        html: emailBody
    };
Run Code Online (Sandbox Code Playgroud)

emailBody变量中,我有一个带有图像标记行的模板字符串

<img style="width:250px;" cid:unique@cid>
Run Code Online (Sandbox Code Playgroud)

我是否可能需要为express设置静态资产或者什么,图像文件与具有上述代码的文件位于同一文件夹中,任何帮助表示赞赏

javascript node.js express nodemailer

11
推荐指数
4
解决办法
7552
查看次数

常量变量的赋值

我尝试阅读用户输入并将其作为电子邮件发送。但是当我运行这段代码时,它给了我这个错误:分配给常量变量。

任何帮助将不胜感激

var mail= require('./email.js')
var express = require('express')
var router = express.Router()

router.post('/',function(req, res, next){
    var address = req.fields.address
    var text = req.fields.text
    var subject = req.fields.subject

    try{
       if(text = 0){
           throw new Error('Please enter what u want to say')
       }
       if(subject = 0){
           throw new Error('Please enter subject')
       }

    }catch(e){
        req.flash('error', e.message)
        return res.redirect('back')
    }

    var detail = {
        to:address,
        text:text,
        subject:subject,
        from: 'test <nbuudilc@126.com>'
    }

    email(detail).then(function(){
        req.flash('success','email sent success')
        res.redirect('/posts')
    })

})

module.exports = router
Run Code Online (Sandbox Code Playgroud)

node.js nodemailer

11
推荐指数
1
解决办法
9万
查看次数

标签 统计

node.js ×10

nodemailer ×10

javascript ×5

express ×2

gmail ×2

sendgrid ×2

angularjs ×1

ejs ×1

email ×1

server-side ×1

smtp ×1

spam ×1