* 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)
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));
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:
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
@mbernier lamentablemente todavía se producen errores en node.js
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.