У меня проблема с отправкой электронных писем из моей (скажем, контактной формы). Он отлично работает, когда я подключен только к двум сетям: моей мобильной точке доступа и в моем офисе. Когда я подключен к любой другой сети с доступом в интернет, она не работает (нет ошибок, но нет и электронной почты :( ...)
Сначала я использовал SendGrid и подумал, что проблема в SendGrid. Я даже связался со службой поддержки SendGrid, и мне сказали, что код верен, и с моими настройками тоже все в порядке.
На следующем шаге я попробовал Nodemailer - к сожалению, тот же эффект ...
Нужна подсказка, в чем может быть проблема?
Ниже мой код отвечает за создание и отправку запроса электронной почты:
Вот код
const express = require("express");
const cors = require("cors");
const sgMail = require("@sendgrid/mail");
require("dotenv").config();
const API_KEY = process.env.REACT_APP_SG_MAIL_API_KEY;
sgMail.setApiKey(API_KEY);
const app = express();
app.use(cors());
app.get("/", (req, res) => {
res.send("Hello");
});
app.get("/send-email", (req, res) => {
const { recipient, sender, topic, html, senderName } = req.query;
let subject = topic + senderName;
const msg = {
to: recipient,
from: sender,
subject: subject,
html: html
};
sgMail.send(msg).then();
});
app.listen(4005, () => {
console.log("Server 4005 is listening");
});
Как я уже говорил, он отлично работает с двумя конкретными сетями, упомянутыми выше.
EDIT:
Вот мой запрос на получение:
fetch(
`${window.location}/send-email?recipient=${email.recipient}&sender=${
email.sender
}&topic=${email.subject}&html=${myhtml}&senderName=${senderName}`,
{ mode: "no-cors" }
).catch(err => console.log(err));