Не могу отправить электронное письмо из React - PullRequest
0 голосов
/ 03 августа 2020

У меня есть сценарий, который сравнивает данные от клиента и API, и если данные по API>, чем на client = call Email script.

Я пытаюсь использовать Smtp JS Библиотеку .

Вот часть кода, который должен вызывать скрипт электронной почты, когда данные API>, чем на клиенте.

useEffect(() => {
    setTimeout(() => {
      getApiData();
    }, 1000 * 60);
    if (dataApi.length > 0) {
      const clientQueriesNames = queries.map(rec => rec.symbol);
      const newFilteredArray = dataApi.filter(apiQuery => {
        if (clientQueriesNames.includes(apiQuery.Symbol)) {
          return apiQuery.Open >
            queries.find(rec => rec.symbol === apiQuery.Symbol).price
            ? apiQuery
            : false;
        }
      });
      const newQueries = queries.filter(rec => {
        return typeof newFilteredArray.find(
          query => query.Symbol === rec.symbol
        ) === "undefined"
          ? rec
          : false;
      });
      setFiltered(newFilteredArray);
      setQueries(newQueries);
      localStorage.setItem("queries", JSON.stringify(newQueries));
      newFilteredArray.forEach(symbol => { Email.send({
        Host: "smtp.gmail.com",
        Username: process.env.REACT_APP_DB_USER,
        Password: process.env.REACT_APP_DB_PASS,
        To: process.env.REACT_APP_DB_RECEIVER,
        From: process.env.REACT_APP_DB_USER,
        Subject: `${symbol} is up`,
        Body: ""
      }).then(message => alert(message))
      })
      console.log(newFilteredArray);
    }
  }, [dataApi]);

Я получаю сообщение об ошибке в консоли, которое - 'Email' is not defined no-undef в этой строке кода

      newFilteredArray.forEach(symbol => { Email.send({

Моя цель - отправить письмо от React. Я пытался использовать NodeMailer, но у меня возникла та же проблема, и, насколько я понимаю, NodeMailer не работает с React - React nodemailer net .isIP не является функцией

1 Ответ

1 голос
/ 03 августа 2020

Проблема в том, что вы звоните Email.send и находитесь в React scope .

Используйте:

window.Email.send()

В качестве примечания: всегда убедитесь, что smtpjs.js загружается первым, а не загружается асинхронно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...