类型错误:tls.connect 不是一个函数



我一直遇到这个问题 tls.connect 不是一个函数。 我正在将nodemailer与我的Reactjs和Nextjs应用程序一起使用。

sendmail.js?71c0a4a:33 Error: TypeError: tls.connect is not a function
at SMTPConnection.connect (index.js?49b6f52:228)
at getSocket (index.js?55ebb9c:234)
at setImmediate (index.js?55ebb9c:70)
at run (setImmediate.js?d2412a6:40)
at runIfPresent (setImmediate.js?d2412a6:69)
at onGlobalMessage (setImmediate.js?d2412a6:109)

奇怪的部分是,如果我在控制台中运行脚本,它将起作用,但是通过浏览器运行我得到tls.connect并不是函数错误。

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
service: 'gmail',
secure: false, 
port: 465,
auth: {
user: '',
pass: ''
},
});
class mail {
options (to, text, subject, html) {
console.log(to)
var mailOptions = {
from: '', 
to: to, 
subject: subject, 
text: text, 
html: html 
}
return(mailOptions);
}
sendMail(mailOptions) {
console.log(mailOptions)
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.error('Error:', error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
});
}
}
export default mail;

你在客户端的捆绑器中使用nodemailer, NodeMailer 只能在 ServerSide 使用。

这个问题是环境问题,也请注意,即使它有效,您也会通过在客户端使用它来暴露该Google帐户和密码。

考虑创建一个服务器端 nodejs API 来发送电子邮件

问题

最新更新