我一直遇到这个问题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;
答案 0 :(得分:0)
您正在客户端的捆绑器中使用nodemailer, 应该仅在ServerSide上使用NodeMailer。
此问题与环境有关,并且请注意,即使该方法可行,您也会在客户端使用该帐户和密码来公开该帐户。
考虑创建服务器端nodejs api来发送电子邮件