Я использую Sendgrid API для отправки электронных писем из моего проекта Node.js.При работе на моей локальной машине это работает просто отлично, но теперь я развернул в Digital Ocean (Ubuntu) почту не отправлял.Я читал, что Digital Ocean по умолчанию блокирует порты smtp, и вы, очевидно, можете открыть их через командную строку, но я не могу найти простое объяснение того, как это сделать.
const nodemailer = require("nodemailer");
const sendgridTransport = require('nodemailer-sendgrid-transport');
const transporter = nodemailer.createTransport(sendgridTransport({
auth: {
api_key: process.env.SENDGRID_API
}
}));
return transporter.sendMail({
to: 'info@example.com',
from: email,
subject: subject,
html: `<h1>Contact Form</h1>
<p>Name: ${name}</p>
<p>Email: ${email}</p>
<p>${comments}</p>
`
});
ОБНОВЛЕНИЕ
Если я удаляю .env для ключа API и на самом деле жестко его кодирую, например:
const transporter = nodemailer.createTransport(sendgridTransport({
auth: {
api_key: '12345677788999'
}
}));
, тогда мои электронные письма отправляются.Это мой файл .env (я использую dotenv)
DB_USER=username
DB_PASSWORD=password
DB_NAME=mydbname
SENDGRID_API=12345677788999
Итак, не уверен, почему это будет?