gpt4 book ai didi

javascript - Nodemailer 使用 gmail,无法在字符串 'mailer' 上创建属性 'SMTP'

转载 作者:IT老高 更新时间:2023-10-28 23:01:10 25 4
gpt4 key购买 nike

我正在尝试将我创建的表单中的数据发送到我的 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: 'kylevantil14@gmail.com',
clientId: '-' ,
clientSecret: '-' ,
refreshToken: '-'
})
}
});

//Mail options
mailOpts = {
from: req.body.rating[name] + ' <' + req.body.rating[email][first] + '>',
to: 'kylevantil14@gmail.com',
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);
});

最佳答案

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

var xoauth2 = require('xoauth2');


smtpTrans = nodemailer.createTransport({
service: 'Gmail',
auth: {
xoauth2: xoauth2.createXOAuth2Generator({
user: 'kylevantil14@gmail.com',
//and other stuff

请查看官方资源了解更多详情:

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

关于javascript - Nodemailer 使用 gmail,无法在字符串 'mailer' 上创建属性 'SMTP',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42414634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com