SendGrid не рассылает, но не выдает никаких ошибок - PullRequest
0 голосов
/ 29 октября 2018

Это мой код:

userDetails = [{email:'email',id:'id'}]
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey('key');
for (const i in usersDetails) {
    const user = usersDetails[i];
    const msg = {
        from: `ZdajTo<noreply@zdajto.com>`,
        to: user.email,
        subject: `Dostepne sa nowe zadania z kategorii ${work.category}!`,
        html: `<p>Hej! Sprawdz aplikacje ZdajTo! Dostepne sa nowe zadania z kategorii ${work.category}! Aby zrezygnowac z otrzymywania emaili kliknij w <a href="https://Link/${user.id}" target="_blank">ten link</a></p>`,
    };
    calls.push(sgMail.send(msg).then(() => console.log(`Email sent to ${msg.to}`)).catch(e => console.log(e)));
}
return Promise.all(calls).then(() => console.log('Emails sent')).catch(err => console.log(8, err));

userDetails - это массив писем с идентификаторами.

Я использовал почти тот же код ранее с nodemailer, и он работал хорошо. Вот версия nodemailer:

for (const i in usersDetails) {
    const user = usersDetails[i];
    calls.push(mailTransport.sendMail({
        from: `ZdajTo <noreply@zdajto.com>`,
        to: user.email,
        subject: `Dostepne sa nowe zadania z kategorii ${work.category}!`,
        html: `<p>Hej! Sprawdz aplikacje ZdajTo! Dostepne sa nowe zadania z kategorii ${work.category}! Aby zrezygnowac z otrzymywania emaili kliknij w <a href="https://Link/${user.id}" target="_blank">ten link</a></p>`,
    }).catch(err => console.log(7, err, user.email)));
}

Странная вещь, это говорит Emails sent и Email sent to... каждый раз. Ошибка не выдается, но в то же время SendGrid сообщает, что запросов не было. Есть идеи, что мне не хватает?

1 Ответ

0 голосов
/ 30 октября 2018

Я предполагаю, что вы получаете принятый ответ (202), который запускает часть "сообщение отправлено". однако, это не гарантирует, что ваше сообщение будет отправлено, я просто поставлю его в очередь на обработку. я бы связался со службой поддержки Sendgrid, как в этом случае: Sendgrid возвращает 202, но не отправляет электронное письмо

...