Sendgrid-nodejs: incapaz de enviar correo

Creado en 15 dic. 2017  ·  17Comentarios  ·  Fuente: sendgrid/sendgrid-nodejs

Resumen de asuntos

* EL APOYO ME DIRIGE AQUÍ *
PRUEBA: https://support.sendgrid.com/hc/en-us/requests/1325416?page=1

No puedo enviar correos electrónicos con la biblioteca. apoyo me dirigió aquí. Estoy intentando enviar desde node.js, ejecutándome en localhost. Primero probé el ejemplo que figura en npm, pero obtengo un error 401 con un encabezado que es como x-no-cors reason . así que intenté usar el paquete @sendgrid/mail lugar, y con eso aparece un error que dice esto:

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)

Pasos para reproducir

aquí hay un módulo mínimo para reproducir

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

Detalles técnicos:

  • sendgrid-nodejs Versión: master (última confirmación: [número de confirmación])
  • Versión de Node.js: 6
help wanted question

Todos 17 comentarios

Intenté con otra clave también, y no bueno. a veces, el error no ocurre y luego la respuesta es

Unauthorized (401)
Permission denied, wrong credentials

Hola @ r3wt ,

Este es un problema con el que nuestro equipo de soporte puede ayudar. Pueden ayudarlo a investigar su cuenta para resolver el problema con su (s) clave (s).

¡Gracias!

Con los mejores deseos,

Elmer

@thinkingserious Tu equipo de soporte es el que me dirigió aquí.

@ r3wt

Sé que esto puede suceder si publica su clave API en github, porque nuestro equipo de cumplimiento deshabilitará su clave.

La otra cosa que puede suceder es si tiene la administración de IP activada, donde solo se puede acceder a su cuenta desde IP específicas. Si su código se ejecuta en una IP que no está en esa lista, también provocará errores.

¿Puede hacerme un favor y crear una nueva clave API con privilegios de correo / envío e intentar el código de nuevo?

Mientras lo hace, ¿puede decirnos su número de ticket de soporte?
¡¡Gracias!!

Veo el boleto ahora ... así que miraré allí también. ¡Gracias!

@mbernier, la clave está en un archivo de configuración en un repositorio privado. ¿Cómo podría su equipo detectar esto? no hay peligro de que la clave se filtre, es un repositorio privado.

ahora, algo de información sobre mi conexión:

  • satélite, ipv6. sin conexiones entrantes remotas.
  • estoy ejecutando la aplicación en localhost

Entonces, si es privado, entonces eso no es un problema, aunque nuestros equipos de InfoSec siempre sugieren no poner claves incluso en repositorios privados :)

Su aplicación debería poder enviar los correos electrónicos.

¿Puedes ir aquí: https://sendgrid.com/docs/API_Reference/api_v3.html e intentar enviarlo a través de la pestaña "Pruébalo" en esa página de documentos? Si recibe un error, publique la respuesta y el error aquí.

@mbernier

image

@mbernier lamentablemente todavía se producen errores en node.js

image

Parece que su cuenta no está activada. ¿Puede iniciar sesión en app.sendgrid.com y buscar las notificaciones en la parte superior de la página? Le indicará que proporcione un poco más de información sobre usted mismo para demostrar que es un buen remitente.

@mbernier La cuenta de mi cliente ha estado activa durante al menos 2 años. Revisé los registros y el cliente está enviando activamente otras campañas de correo electrónico y esas cosas. Estoy confundido.

@mbernier después de seguir las instrucciones de configuración del menú interactivo de la cuenta, funcionó. tan extraño.

Lo siento, no estoy seguro de lo que pudo haber pasado. Tomé notas en el ticket de soporte, así que espero que con su acceso puedan darnos más detalles.

¡Me alegro de que esté funcionando ahora!

@ r3wt Voy a cerrar esto, ¡háganos saber si tiene algún otro problema!

@mbernier, el problema está sucediendo nuevamente.

Hola @ r3wt ,

¿Podría volver a comunicarse con nuestro equipo de soporte, a través del ticket de soporte original que abrió con ellos, y vincularlo a este hilo? Creo que puede haber ocurrido algo en su cuenta y ellos tienen las herramientas para investigar su cuenta.

¡Gracias!

Con los mejores deseos,

Elmer

Solo para hacerle saber, tuve problemas muy similares por lo que puedo decir (aún nuevo). La solución fue configurar la variable clave API en la plataforma de aplicaciones heroku https://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable
No tengo problemas ahora.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

agostonbonomi picture agostonbonomi  ·  3Comentarios

danielflippance picture danielflippance  ·  4Comentarios

thidasapankaja picture thidasapankaja  ·  4Comentarios

Chrischuck picture Chrischuck  ·  3Comentarios

egges picture egges  ·  3Comentarios