TypeError:tls.connect不是函数

时间:2017-08-09 09:48:43

标签: node.js reactjs tls1.2 nodemailer

我一直遇到这个问题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;

1 个答案:

答案 0 :(得分:0)

您正在客户端的捆绑器中使用nodemailer, 应该仅在ServerSide上使用NodeMailer。

此问题与环境有关,并且请注意,即使该方法可行,您也会在客户端使用该帐户和密码来公开该帐户。

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

issue