Sendgrid-nodejs: Mail kann nicht gesendet werden

Erstellt am 15. Dez. 2017  ·  17Kommentare  ·  Quelle: sendgrid/sendgrid-nodejs

Problemzusammenfassung

* Unterstützung unterstützt mich hier
Beweis: https://support.sendgrid.com/hc/en-us/requests/1325416?page=1

Ich kann keine E-Mails mit der Bibliothek senden. Die Unterstützung hat mich hierher geleitet. Ich versuche, von node.js zu senden, das auf localhost ausgeführt wird. Ich habe zuerst das auf npm aufgeführte Beispiel ausprobiert, aber ich erhalte einen 401-Fehler mit einem Header, der x-no-cors reason . Also habe ich versucht, stattdessen das Paket @sendgrid/mail verwenden, und damit erhalte ich eine Fehlermeldung, die Folgendes besagt:

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)

Schritte zum Reproduzieren

Hier ist ein minimales Modul zu reproduzieren

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));

Technische Details:

  • sendgrid-nodejs Version: master (letztes Commit: [Commit-Nummer])
  • Node.js Version: 6
help wanted question

Alle 17 Kommentare

Ich habe es auch mit einem anderen Schlüssel versucht und ohne Bueno. Manchmal tritt der Fehler nicht auf, und dann lautet die Antwort

Unauthorized (401)
Permission denied, wrong credentials

Hi @ r3wt ,

Dies ist ein Problem, bei dem unser Support-Team helfen kann. Sie können Ihnen dabei helfen, Ihr Konto zu durchsuchen, um das Problem mit Ihren Schlüsseln herauszufinden.

Dankeschön!

Mit besten Empfehlungen,

Elmer

@thinkingserious Ihr Support-Team hat mich hierher geleitet.

@ r3wt

Ich weiß, dass dies passieren kann, wenn Sie Ihren API-Schlüssel in github veröffentlichen, da unser Compliance-Team Ihren Schlüssel deaktiviert.

Das andere, was passieren kann, ist, wenn Sie die IP-Verwaltung aktiviert haben, auf die Ihr Konto nur über bestimmte IP-Adressen zugreifen kann. Wenn Ihr Code auf einer IP ausgeführt wird, die nicht in dieser Liste enthalten ist, führt dies ebenfalls zu Fehlern.

Können Sie mir bitte einen Gefallen tun und einen neuen API-Schlüssel mit Mail- / Sendeprivilegien erstellen und den Code erneut versuchen?

Können Sie uns dabei bitte Ihre Support-Ticket-Nummer mitteilen?
Vielen Dank!!

Ich sehe das Ticket jetzt ... also werde ich auch dort nachsehen. Vielen Dank!

@mbernier Der Schlüssel befindet sich in einer Konfigurationsdatei auf einem privaten Repo. Wie würde Ihr Team dies erkennen können? Es besteht keine Gefahr, dass der Schlüssel ausläuft. Es handelt sich um ein privates Repository.

Nun einige Infos zu meiner Verbindung:

  • Satellit, IPv6. Keine Remote-Inbound-Verbindungen.
  • Ich starte die App auf localhost

Wenn es also privat ist, ist das kein Problem - obwohl unsere InfoSec-Teams immer empfehlen, keine Schlüssel auch in privaten Repos zu platzieren :)

Ihre App sollte in der Lage sein, die E-Mails zu senden.

Können Sie bitte hier gehen: https://sendgrid.com/docs/API_Reference/api_v3.html und versuchen, über die Registerkarte "Try it" auf dieser Dokumentenseite zu senden? Wenn Sie einen Fehler zurückerhalten, posten Sie bitte die Antwort und den Fehler hier.

@ Mbernier

image

@mbernier leider

image

Es sieht so aus, als ob Ihr Konto nicht aktiviert ist. Können Sie sich bitte unter app.sendgrid.com anmelden und nach den Benachrichtigungen oben auf der Seite suchen? Sie werden angewiesen, ein wenig mehr Informationen über sich selbst zu geben, um zu beweisen, dass Sie ein guter Absender sind.

@mbernier mein

@mbernier Nachdem ich die Setup-Anweisungen aus dem interaktiven Konto-Menü befolgt hatte, funktionierte es. so bizarr.

Tut mir leid, ich bin mir nicht sicher, was hätte passieren können. Ich habe mir Notizen zum Support-Ticket gemacht, daher hoffe ich, dass sie uns mit ihrem Zugang weitere Details mitteilen können.

Ich bin froh, dass es jetzt funktioniert!

@ r3wt Ich werde dies schließen, bitte lassen Sie uns wissen, wenn Sie auf andere Probleme

@mbernier das Problem tritt wieder auf.

Hallo @ r3wt ,

Könnten Sie sich bitte über das ursprüngliche Support-Ticket, das Sie mit ihnen geöffnet haben, an unser Support-Team wenden und auf diesen Thread verlinken? Ich denke, Ihrem Konto ist möglicherweise etwas passiert, und sie verfügen über die Tools, um Ihr Konto zu untersuchen.

Vielen Dank!

Mit besten Empfehlungen,

Elmer

Ich habe Sie nur wissen lassen, dass ich, soweit ich das beurteilen kann, sehr ähnliche Probleme hatte (immer noch neu). Die Lösung bestand darin, die API-Schlüsselvariable in der App-Plattform heroku https://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable einzurichten
Keine Probleme jetzt für mich.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

agostonbonomi picture agostonbonomi  ·  3Kommentare

amlcodes picture amlcodes  ·  4Kommentare

kiranshashiny picture kiranshashiny  ·  4Kommentare

umarhussain15 picture umarhussain15  ·  3Kommentare

murphman300 picture murphman300  ·  4Kommentare