Я пытаюсь отправить электронное письмо, когда пользователь заполняет контактную форму, но я получаю ошибки при обращении к файлу javascript из моего компонента. Все ошибки находятся в выключенном формате:
"Не удалось создать пакет разработки JavaScript Не удалось разрешить 'child_process' в .... Файл: node_modules \ nodemailer \ lib \ sendmail-transport \ index. js ""
Я попытался переместить файлы. Переход с JS на TS и все та же ошибка. Мои знания о реакции ограничены, поэтому, возможно, я делаю что-то, что не разрешен для компонента?
Мой компонент контактной формы:
import React from "react"
import style from './contact-form.module.css';
import { SendEmails } from '../send';
export class ContactForm extends React.PureComponent {
handleSubmit(e){
e.preventDefault();
const name = this.state.Name;
const email = this.state.Email;
const message = this.state.Message;
const company = this.state.Company
const data = {
name: name,
email: email,
messsage: message,
company: company
}
SendEmails(data);
}}
И мой отправить. js файл
var nodemailer = require('nodemailer');
const creds = require('../config/config');
var transport = {
host: 'smtp.gmail.com',
port: 587,
secure: false,
auth: {
user: creds.USER,
pass: creds.PASS
}
}
var transporter = nodemailer.createTransport(transport)
transporter.verify((error, success) => {
if (error) {
console.log(error);
} else {
console.log('Server is ready to take messages');
}
});
function sendEmail(req){
var name = req.body.name
var email = req.body.email
var message = req.body.message
var company = req.body.company
var content = `name: ${name} \n company: ${company} \n email: ${email} \n message: ${message} `
var mail = {
from: name,
to: creds.USER, //Change to email address that you want to receive messages on
subject: 'New Message from Contact Form',
text: content
}
transporter.sendMail(mail, (err, data) => {
if (err) {
return 'fail'
} else {
return 'Succeed'
}
})
}
export const SendEmails = (n)=>{
sendEmail(n);
}