Не получаю письма от SendGrid - PullRequest
0 голосов
/ 01 марта 2019

Используя облачные функции Sendgrid, Node.js и Firebase, я смог отправлять электронные письма через http.В течение последних нескольких дней мои электронные письма больше не приходили.Я не особо изменил свой код, поэтому понятия не имею, что заставляет не отправлять электронные письма.Я проверил свои журналы функций FireBase, но я получил 200 или 204 кода состояния.Когда я проверяю sendgrid, он показывает, что делаются запросы и отправляются электронные письма.

и да, я проверил папку со спамом.

Может кто-нибудь помочь, пожалуйста?

Вот мойфункция:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const cors = require("cors")({ origin: true });
const SENDGRID_API_KEY =
  "SENDGRID-APIKEY";
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(SENDGRID_API_KEY);

exports.httpManagerEmail = functions.https.onRequest((req, res) => {
  cors(req, res, () => {
    const toEmail = req.body.toEmail;
    const managerName = req.body.managerName;
    const managerEmail = req.body.managerEmail;
    const managerUUID = req.body.managerUUID;

    const msg = {
      to: toEmail,
      from: {
        email: "support@BLAH.com",
        name: "BLAH"
      },
      text: '',
      html: '',
      templateId: "d-111111111",
      substitutionWrappers: ["{{", "}}"],
      substitutions: {
        managerName: managerName,
        managerEmail: managerEmail,
        managerUUID: managerUUID
      }
    };
    return sgMail
      .send(msg)
      .then(() => res.status(200).send({ message: "email sent!" }))
      .catch(err => res.status(400).send(err));
  });
});

Вот мой component.ts

endpoint = "MY_ENDPOINT"

  sendEmail() {
    const managerData = {
      toEmail: this.manager.managerEmail,
      managerName: this.manager.managerFirstName,
      managerEmail: this.manager.managerEmail,
      managerUUID: this.manager.managerUUID
    }
      this.httpClient.post(this.endpoint, managerData).subscribe(data => console.log('email sent: ', data));
    }

Спасибо, что нашли время, чтобы попытаться помочь!

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Проблема решена:

Я исследую документы SendGrid более тщательно.Я нашел свою проблему на странице Активность по электронной почте .Я видел, что мои электронные письма не терялись, они просто не доставлялись

Я нажал на журнал электронных писем, и это была ошибка, которую я увидел:

550 5.7.1 Unauthenticated email from mydomain.com is not accepted 
due to domain's DMARC policy. Please contact the administrator of 
mydomain.com domain if this was a legitimate mail. 
Please visit https://support.google.com/mail/answer/2451690 to learn about the 
DMARC initiative. s5si11407114ywe.292 - gsmtp

электронное письмоадрес, с которого я отправлял электронные письма, не был аутентифицирован в SendGrid.Мне нужно было выполнить Аутентификацию отправителя , чтобы я мог использовать электронную почту с зарегистрированного домена, подтверждающую, что я действительно являюсь владельцем домена.

0 голосов
/ 01 марта 2019

Попробуйте указать тему, текст или html

 subject: 'Just testing subject',
  text: 'body text',
  html: '<strong>body text</strong>'
...