Sendgrid-nodejs: невозможно отправить почту

Созданный на 15 дек. 2017  ·  17Комментарии  ·  Источник: sendgrid/sendgrid-nodejs

Резюме проблемы

* ПОДДЕРЖКА НАПРАВИЛА МЕНЯ СЮДА *
ДОКАЗАТЕЛЬСТВО: https://support.sendgrid.com/hc/en-us/requests/1325416?page=1

Я не могу отправить электронное письмо с библиотекой. поддержка направила меня сюда. Я пытаюсь отправить с node.js, запущенного на localhost. Сначала я попробовал пример, указанный в npm, но я получаю ошибку 401 с заголовком типа x-no-cors reason . поэтому я попытался использовать пакет @sendgrid/mail вместо этого и получил сообщение об ошибке:

TypeError: Cannot read property 'errors' of undefined
at ResponseError.toString (E:\songsplits\api\node_modules\@sendgrid\helpers\classes\response-error.js:45:27)
at Function.CapturedTrace.parseStackAndMessage (E:\songsplits\api\node_modules\bluebird\js\main\captured_trace.js:176:25)
at CapturedTrace.attachExtraTrace (E:\songsplits\api\node_modules\bluebird\js\main\captured_trace.js:79:32)
at Promise._attachExtraTrace (E:\songsplits\api\node_modules\bluebird\js\main\debuggability.js:102:19)
at Promise._rejectCallback (E:\songsplits\api\node_modules\bluebird\js\main\promise.js:471:10)
at E:\songsplits\api\node_modules\bluebird\js\main\promise.js:486:17
at Request.http [as _callback] (E:\songsplits\api\node_modules\@sendgrid\client\src\client.js:124:18)
at Request.self.callback (E:\songsplits\api\node_modules\request\request.js:188:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (E:\songsplits\api\node_modules\request\request.js:1171:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (E:\songsplits\api\node_modules\request\request.js:1091:12)
at IncomingMessage.g (events.js:291:16)
at emitNone (events.js:91:20)

Действия по воспроизведению

вот минимальный модуль для воспроизведения

email.js


const sgMail = require('@sendgrid/mail')

sgMail.setApiKey(process.env.SENDGRID_KEY);

module.exports.send = function send(html,subject,to,from){

    return new Promise((resolve,reject)=>{

        sgMail.send({
            to,
            from,
            subject,
            html
        }).then(resolve).catch(reject);

    });
};

index.js

const send = require('./mail');

send(
    '<!DOCTYPE html><html><head><title>Hi</title></head><body>Hi</body></html>',
    'Hi',
    '[email protected]',
    '[email protected]',
).then(()=>console.log('sent an email successfully!')).catch(err=>console.log(err));

Технические подробности:

  • sendgrid-nodejs Версия: master (последняя фиксация: [номер фиксации])
  • Node.js Версия: 6
help wanted question

Все 17 Комментарий

просто попробовал с другим ключом, а буэно нет. иногда ошибка не возникает, и тогда ответ

Unauthorized (401)
Permission denied, wrong credentials

Привет @ r3wt!

Это проблема, с которой может помочь наша служба поддержки . Они могут помочь вникнуть в вашу учетную запись, чтобы выяснить проблему с вашим ключом (ключами).

Спасибо!

С наилучшими пожеланиями,

Элмер

@thinkingserious Это ваша группа поддержки направила меня сюда.

@ r3wt

Я знаю, что это может произойти, если вы опубликуете свой ключ API на github, потому что наша команда по обеспечению соответствия отключит ваш ключ.

Другая вещь, которая может произойти, - это если у вас включено управление IP, когда ваша учетная запись доступна только с определенных IP-адресов. Если ваш код работает на IP-адресе, которого нет в этом списке, это также вызовет ошибки.

Не могли бы вы сделать мне одолжение и создать новый ключ API с привилегиями mail / send и попробовать код еще раз?

Пока вы это делаете, не могли бы вы сообщить нам номер вашего обращения в службу поддержки?
Спасибо!!

Я вижу билет сейчас ... так что я тоже посмотрю. Спасибо!

@mbernier ключ находится в файле конфигурации в частном репо. как ваша команда сможет это обнаружить? нет опасности утечки ключа, это частный репозиторий.

теперь немного информации о моем подключении:

  • спутник, ipv6. нет удаленных входящих подключений.
  • я запускаю приложение на локальном хосте

Так что, если он частный, то это не проблема - хотя наши команды InfoSec всегда предлагают не помещать ключи даже в частные репозитории :)

Ваше приложение должно иметь возможность отправлять электронные письма.

Не могли бы вы перейти сюда: https://sendgrid.com/docs/API_Reference/api_v3.html и попробовать отправить через вкладку «Попробовать» на этой странице документов? Если вы получите ответ об ошибке, опубликуйте ответ и ошибку здесь.

@mbernier

image

@mbernier, к сожалению, ошибки все еще возникают в node.js

image

Похоже, ваша учетная запись не активирована. Не могли бы вы войти в систему на app.sendgrid.com и посмотреть уведомления вверху страницы. Он побудит вас предоставить немного больше информации о себе, чтобы доказать, что вы хороший отправитель.

@mbernier аккаунт моих клиентов активен как минимум 2 года. Я проверил логи, и клиент активно рассылает другие рассылки и прочее? я запутался.

@mbernier после того, как я выполнил инструкции по настройке из интерактивного меню учетной записи, это сработало. так странно.

К сожалению, я не уверен, что могло случиться. Я сделал заметки в обращении в службу поддержки, поэтому надеюсь, что с их доступом они смогут предоставить нам более подробную информацию.

Я рад, что теперь он работает!

@ r3wt Я собираюсь закрыть это, сообщите нам, если у вас возникнут другие проблемы!

@mbernier, проблема возникает снова.

Привет @ r3wt!

Не могли бы вы связаться с нашей службой поддержки, используя исходный тикет поддержки, который вы открыли вместе с ними, и ссылку на эту ветку? Я думаю, что что-то случилось с вашей учетной записью, и у них есть инструменты для расследования вашей учетной записи.

Спасибо!

С наилучшими пожеланиями,

Элмер

Просто сообщаю вам, что у меня были очень похожие проблемы, насколько я могу судить (все еще новые). Решение заключалось в настройке ключевой переменной API на платформе приложений heroku https://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable
Теперь у меня нет проблем.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги