使用gmail的Nodemailer,无法在字符串“ SMTP”上创建属性“ mailer”

凯尔·范·蒂尔:

我试图将数据从创建的表单发送到我的gmail帐户,当单击sumbit按钮时,我总是会遇到相同的错误。我发现了许多有关nodemailer的问题,但似乎没有一个与我遇到的问题相同。

当然,我已经声明了我的clientId,但为此帖子删除了。

TypeError: Cannot create property 'mailer' on string 'SMTP'
at Mail (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\mailer\index.js:45:33)
   at Object.module.exports.createTransport (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\nodemailer.js:46:14)
   at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\src\app.js:39:26
   at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
   at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:131:13)
   at Route.dispatch (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:112:3)
   at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
   at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:277:22
   at Function.process_params (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:330:12)
   at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:271:10)
   at serveStatic (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\node_modules\serve-static\index.js:75:16)
   at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
   at trim_prefix (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:312:13)
   at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:280:7
   at Function.process_params (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:330:12)
   at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:271:10)

这是我的app.js:

// require modules
const express = require('express');
const app = express();
const pug = require('pug');
const fs = require('fs')
const bodyParser = require('body-parser');
const pg = require('pg');
const nodemailer = require('nodemailer');
const xoauth2 = require('xoauth2');


//set view engine and views
app.set('views', 'src/views');
app.set('view engine', 'pug');

app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static('./resources/'));





//display index page
app.get('/', function ( req, res ){
  console.log('Index is displayed on localhost');
    res.render('index');
});

app.post('/zorginstelling/ziekenhuis-olvg-locatie-west-voorheen-sint-lucas-andreas-ziekenhuis-amsterdam-109428/waardeer', function (req, res) {
  var mailOpts, smtpTrans;
  console.log('form word gepost')
  //Setup Nodemailer transport, I chose gmail. 
  smtpTrans = nodemailer.createTransport('SMTP', {
      service: 'Gmail',
      auth: {
        xoauth2: xoauth2.createXOAuth2Generator({
            user: '[email protected]',
            clientId: '-' ,
            clientSecret: '-' ,
            refreshToken: '-'
        })
       }
  });

   //Mail options
  mailOpts = {
      from: req.body.rating[name] + ' <' + req.body.rating[email][first] + '>', 
      to: '[email protected]',
      subject: 'Test',
      text: req.body.rating[comment] + req.body.rating[questions][behandeling] + req.body.rating[name]
  };

    smtpTrans.sendMail(mailOpts, function (error, response) {
      //Email not sent
      if (error) {
          console.log('There was a problem')
      }
      //Yay!! Email sent
      else {
          console.log('Email sent!')
      }
  });
});



var server = app.listen(4000, function () {
        console.log('Example app listening on port: ' + server.address().port);
    });
亚历山大·鲁佐夫斯基(Alexander Rulezovsky):

Nodemailer已被重新设计,因此旧的代码结构可能会引发此类错误。尝试使用以下结构:

var xoauth2 = require('xoauth2');


smtpTrans = nodemailer.createTransport({
  service: 'Gmail', 
  auth: {
    xoauth2: xoauth2.createXOAuth2Generator({
        user: '[email protected]',
        //and other stuff

请检查官方资源以获取更多详细信息:

https://community.nodemailer.com/2-0-0-beta/using-oauth2/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP Mailer错误:无法发送消息。Mailer错误:SMTP connect()失败

Rails 4.2 Mailer问题-无法使Mailer工作

TypeError:无法在setUpControl的字符串“ [email protected]”上创建属性“ validator”

在 heroku 上使用 Action Mailer 安排电子邮件

将SMTP Gmail身份验证添加到PHP Mailer联系人表单

Angular TypeError:无法在字符串''上创建属性

类型错误:无法在字符串 'a' 上创建属性 'style'

TypeError:无法在字符串“ /:id”上创建属性“ next”

无法在字符串 '' 上创建属性 'fillColor'

如何处理SMTP传输中Symfony Mailer组件的凭据中的特殊字符?

symfony 5.2无法通过MAILER发送smtp电子邮件:预期响应代码为“ 250”

PHP Mailer返回PHP致命错误:未捕获PHPMailer \ PHPMailer \ Exception:SMTP错误:无法验证

Rails Mailer-无法从Mailer View访问实例变量

无法使用组件工厂在字符串“ userForm”上创建属性“ validator”

使用SendGrid模板的Rails Mailer

HAProxy Mailer SMTP身份验证

带有SMTP的Rails Action Mailer ArgumentError

PHP Mailer SMTP 错误命令失败

如何在Symfony Mailer上的Bootstrap中使用模板化电子邮件?

使用Mailer ASP.net在电子邮件上发送实体

Rails中的HAML Mailer上的ActionView :: MissingTemplate

在Rails上编码Mailer ruby的问题

通过PHP Mailer使用实时服务器SMTP服务器发送电子邮件不起作用

Rails Mailer无法在主机上接收

“使用Mvc.Mailer”中的错误;

如何使用Swift Mailer读取模板?

使用 Mailer 进行 rspec 测试失败

在Mailer中使用view_context

使用Go Daddy的PHP Mailer错误