Почему не вызывается transport.sendMail (), когда я использую его с React (nodemailer) - PullRequest
0 голосов
/ 01 августа 2020

Итак, я новичок в node и реагирую, и я пытался настроить nodemailer. На данный момент он работает нормально, если я не запустил его с помощью React.
Я начинаю новый проект с npm init -y, затем npm install nodemailer и в файле с именем index.js у меня есть следующее:

const nodemailer = require('nodemailer');
const handleClick = () => {
    var transport = nodemailer.createTransport({
        host: "smtp.mailtrap.io",
        port: 2525,
        auth: {
            user: "user",
            pass: "pass"
        }
    });
    const message = {
        from: 'test@test.com', 
        to: 'to@email.com', 
        subject: 'This is very frustrating',
        text: 'I wish I knew why this is not working in React'
    };
    transport.sendMail(message, function (err, info) {
        console.log("transport.sendMail called")
        if (err) {
            console.log(err)
        } else {
            console.log(info);
        }
    });
}
handleClick();

Я запускаю это с помощью node index.js, и он работает, как ожидалось, и я могу просмотреть электронную почту в mailtrap.io (поддельный SMTP-сервер, который я нашел для тестирования).

Однако! Моя проблема возникает, когда я пытаюсь сделать это в своем проекте React.
У меня есть следующая (точно такая же функция handleClick ()) в Contact. js

import React from 'react';
import './App.css';
const nodemailer = require('nodemailer');
const Contact = () => {
    const handleClick = () => {
        var transport = nodemailer.createTransport({
            host: "smtp.mailtrap.io",
            port: 2525,
            auth: {
                user: "user",
                pass: "pass"
            }
        });
        const message = {
            from: 'test@test.com', // Sender address
            to: 'to@email.com', // List of recipients
            subject: 'This is very frustrating', // Subject line
            text: 'I wish I knew why this is not working in React' // Plain text body
        };
        transport.sendMail(message, function (err, info) {
            console.log("transport.sendMail called")
            if (err) {
                console.log(err)
            } else {
                console.log(info);
            }
        });
    }
    return (
        <button onClick={handleClick}>CLICK</button>
    )
}
export default Contact

Который я использую как <Contact/> в моем приложении. js файл. Кнопка отображается, и щелчок работает. Но transport.sendMail() даже не выполняется (я не вижу вывода из console.log("transport.sendMail called"))

Я не уверен, как даже начать отладку, и я потратил довольно много времени на поиск в Google, но я Пока не нашел ничего полезного, только примеры, которые делают то же самое, что и я. Любая помощь будет принята с благодарностью.

Более подробная информация (я не думаю, что это актуально, но в том числе на всякий случай) о моем проекте реакции

  • Я начал проект React, используя npx create-react-app, а затем запускаю его с помощью npm start, он работает на localhost и порту 3000
  • Я использую responsestrap
  • При нажатии кнопки в моем приложении React я вижу это , а при раскрытии (оба) выглядят как это
...