*サポートはここに私を導きました*
証明: 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));
別のキーでも試してみましたが、ブエノはありません。 エラーが発生しない場合があります。
Unauthorized (401)
Permission denied, wrong credentials
@thinkingseriousあなたのサポートチームが私をここに導いてくれました。
@ r3wt
APIキーをgithubに公開すると、コンプライアンスチームがキーを無効にするため、これが発生する可能性があることを私は知っています。
発生する可能性のあるもう1つのことは、IP管理がオンになっている場合です。この場合、アカウントには特定のIPからのみアクセスできます。 そのリストにないIPでコードが実行されている場合は、エラーも発生します。
メール/送信権限で新しいAPIキーを作成して、コードを再試行してください。
その際、サポートチケット番号を教えてください。
ありがとう!
チケットが見えました…だから私も見ます。 ありがとう!
@mbernierキーは、プライベートリポジトリの設定ファイルにあります。 あなたのチームはこれをどのように検出できますか? キーが漏洩する危険はなく、プライベートリポジトリです。
今、私の接続に関するいくつかの情報:
したがって、プライベートの場合、それは問題ではありません。ただし、InfoSecチームは、プライベートリポジトリにもキーを配置しないことを常に提案しています:)
アプリはメールを送信できる必要があります。
https://sendgrid.com/docs/API_Reference/api_v3.htmlにアクセスして、そのドキュメントページの[試してみる]タブから送信してみてください。 エラーが戻ってきた場合は、ここに応答とエラーを投稿してください。
@mbernier
@mbernier残念ながら、node.jsでまだエラーが発生しています
アカウントが有効化されていないようです。 app.sendgrid.comにログインして、ページの上部にある通知を探してください。 それはあなたが良い送信者であることを証明するためにあなた自身についてもう少し情報を与えるようにあなたに指示します。
@mbernier私のクライアントアカウントは少なくとも2年間アクティブです。 ログを確認したところ、クライアントは他のメールキャンペーンなどを積極的に送信していますか? よくわかりません。
@mbernierインタラクティブアカウントメニューからのセットアップ手順に従った後、それは機能しました。 とても奇妙です。
申し訳ありませんが、何が起こったのかわかりません。 サポートチケットにメモをとったので、彼らのアクセスで詳細を教えてくれることを願っています。
私はそれが今働いていることをうれしく思います!
@ r3wtこれを終了します。他に問題が発生した場合は、お知らせください。
@mbernier問題が再び発生しています。
こんにちは@ r3wt 、
一緒に開いた元のサポートチケットを介して、サポートチームに連絡し、このスレッドにリンクしてください。 あなたのアカウントに何かが起こったのではないかと思います。彼らはあなたのアカウントを調査するためのツールを持っています。
ありがとう!
敬具、
エルマー
お知らせしますが、私が知る限り、非常によく似た問題がありました(まだ新しい)。 解決策は、アプリプラットフォームherokuでAPIキー変数を設定することでしたhttps://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable
今は問題ありません。