2016-06-04 8 views
1

나는 webpack을 사용하여 reactredux 앱을 만들었으며 사용자가 제출을 클릭하면 이메일을 생성하고 보내려는 연락처 양식이 생성되었습니다. 이렇게하려면 나는과 같이 nodemailer를 사용하는 것을 시도하고있다 :nodemailer를 브라우저에서 사용할 수 있습니까?

import nodemailer from 'nodemailer'; 

//... 

sendEmail() { 

    const emailInfo = { 
     to: '[email protected]', 
     from: '[email protected]', 
     subject: 'Message from bar', 
     text: 'Hello world!' 
    }; 

    const connectionInfo = { 
     host: '...', 
     port: 123, 
     secure: true, 
     auth: { 
       user: '[email protected]', 
       pass: 'foo123' 
     } 
    }; 

    const transporter = nodemailer.createTransport('SMTP', connectionInfo); 
    transporter.sendMail(emailInfo, function(error){ 
      if(error){ console.log('error'); } 
      console.log('sent'); 
    }); 
} 

을 ... 그러나 나는 nodemailer 가져 오기 할 수있는 오류를 많이지고있어.

ERROR in ./~/nodemailer/package.json 
Module parse failed: /Users/myUser/website/node_modules/nodemailer/package.json Unexpected token (2:8) 
You may need an appropriate loader to handle this file type. 
SyntaxError: Unexpected token (2:8) 

ERROR in ./~/nodemailer/lib/http-proxy.js 
Module not found: Error: Cannot resolve module 'net' in /Users/myUser/website/node_modules/nodemailer/lib 
@ ./~/nodemailer/lib/http-proxy.js 7:10-24 

ERROR in ./~/nodemailer/lib/http-proxy.js 
Module not found: Error: Cannot resolve module 'tls' in /Users/myUser/website/node_modules/nodemailer/lib 
@ ./~/nodemailer/lib/http-proxy.js 8:10-24 

ERROR in ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 
Module not found: Error: Cannot resolve module 'dns' in /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/lib 
@ ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 5:10-24 

ERROR in ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 
Module not found: Error: Cannot resolve module 'net' in /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/lib 
@ ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 6:10-24 

ERROR in ./~/nodemailer/~/nodemailer-direct-transport/package.json 
Module parse failed: /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/package.json Unexpected token (2:8) 
You may need an appropriate loader to handle this file type. 
SyntaxError: Unexpected token (2:8) 

오전 내가 여기서 뭔가 누락하거나 브라우저에서 사용하도록 설계되지 않았습니다 nodemailer입니까? 그렇다면 내가보고 있어야하는 또 다른 옵션이 있습니까?

답변

1

node.js는 서버 측 JavaScript 용이며 브라우저에서 수행 할 수없는 많은 작업을 수행 할 수 있습니다. 이메일 보내기

는 기본적으로 채워 몇 가지 링크를 사용자의 이메일 클라이언트를 팝업 할 수 mailto links의 제한된 기능을 넘어, 브라우저에서 제공하는 샌드 박스에서 할 수있는 일이 아니다.

구현해야 서버 쪽 코드는 node.js와 nodemailer가 될 수있는 클라이언트의 일부 동작에 의해 트리거됩니다.