Sendgrid-nodejs: メールを送信できません

作成日 2017年12月15日  ·  17コメント  ·  ソース: sendgrid/sendgrid-nodejs

問題の概要

*サポートはここに私を導きました*
証明: https ://support.sendgrid.com/hc/en-us/requests/1325416 = 1

図書館にメールを送ることができません。 サポートが私をここに導きました。 localhostで実行されているnode.jsから送信しようとしています。 私は最初にnpmにリストされている例を試しましたが、 x-no-cors reasonようなヘッダーで401エラーが発生します。 代わりに@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バージョン:マスター(最新のコミット:[コミット番号])
  • Node.jsバージョン:6
help wanted question

全てのコメント17件

別のキーでも試してみましたが、ブエノはありません。 エラーが発生しない場合があります。

Unauthorized (401)
Permission denied, wrong credentials

こんにちは@ r3wt

これは、サポートチーム

ありがとうございました!

敬具、

エルマー

@thinkingseriousあなたのサポートチームが私をここに導いてくれました。

@ r3wt

APIキーをgithubに公開すると、コンプライアンスチームがキーを無効にするため、これが発生する可能性があることを私は知っています。

発生する可能性のあるもう1つのことは、IP管理がオンになっている場合です。この場合、アカウントには特定のIPからのみアクセスできます。 そのリストにないIPでコードが実行されている場合は、エラーも発生します。

メール/送信権限で新しいAPIキーを作成して、コードを再試行してください。

その際、サポートチケット番号を教えてください。
ありがとう!

チケットが見えました…だから私も見ます。 ありがとう!

@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

一緒に開いた元のサポートチケットを介して、サポートチームに連絡し、このスレッドにリンクしてください。 あなたのアカウントに何かが起こったのではないかと思います。彼らはあなたのアカウントを調査するためのツールを持っています。

ありがとう!

敬具、

エルマー

お知らせしますが、私が知る限り、非常によく似た問題がありました(まだ新しい)。 解決策は、アプリプラットフォームherokuでAPIキー変数を設定することでしたhttps://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable
今は問題ありません。

このページは役に立ちましたか?
0 / 5 - 0 評価