2016-06-04 8 views
1

Я создал простое приложение (с использованием webpack) с формой контакта, которая, когда пользователь нажимает кнопку отправки, хочу сгенерировать и отправить электронное письмо. Для этого я пытался использовать 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) 

Am Я-то здесь отсутствует или nodemailer просто не предназначен для использования в браузере? Если это так, есть еще один вариант, на который я должен смотреть?

ответ

1

node.js предназначен для JavaScript на стороне сервера и позволяет выполнять многие действия, которые не могут быть выполнены в браузере.

Отправка электронной почты не то, что может быть сделано в песочнице, предоставленной в браузере, за ограниченные возможности mailto links, которые могут в основном всплывают клиент электронной почты пользователя с некоторыми ссылками заполненных.

Вы должны реализовать серверный код для этого, вызванный некоторыми действиями от клиента, которые могут быть node.js и nodemailer.