es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SendGrid no puede enviar correo electrónico, funciones de Firebase. (código: 403)

Estoy utilizando Firebase Functions para alojar la implementación de SendGrid y no puedo enviar correos electrónicos que no estén en la lista de “Verificación de remitente único” en SendGrid.

Estoy obteniendo el siguiente error al intentar enviar un correo electrónico desde randomemail@gmail.com:

en node_modules/@sendgrid/client/src/classes/client.js:146:29
en processTicksAndRejections (internal/process/taskqueues.js:95:5) código: 403

Puedo enviar los correos electrónicos desde las direcciones de correo electrónico que agregué a la lista de “Verificación de remitente único” en SendGrid.

Aquí está mi implementación de la función de Firebase, por favor ayuda. Creo que el problema está relacionado con el origen cruzado del dominio o algo con SandGrid.

import * as functions from “firebase-functions”;
const sgMail = require(“@sendgrid/mail”);

exports.emailMessage = functions.https.onCall((data) => {
sgMail.setApiKey(“mi clave está aquí”);

const msg = {
to: ‘stanmozolevskiy@gmail.com’, //aquí hay una de las direcciones de correo electrónico que agregué a la verificación de remitente único
from: data.sender, // solo funciona con correo electrónico de…
subject: ${data.name} te ha enviado un correo electrónico,
text: data.message,
html: <strong>${data.message}</strong>,
}
sgMail
.send(msg)
.then(() => {
console.log(‘Correo electrónico enviado’);
})
.catch((error:any) => {
console.error(error);
})
return{“estado”: “éxito”, datos: data};
});

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para enviar correos electrónicos con remitentes no verificados en SendGrid usando Firebase Functions

    Si está utilizando Firebase Functions para alojar la implementación de SendGrid y no puede enviar correos electrónicos con remitentes no verificados, es posible que se encuentre con el siguiente error:

    en node_modules/@sendgrid/client/src/classes/client.js:146:29
      en processTicksAndRejections (internal/process/task_queues.js:95:5) código: 403
    

    El error está relacionado con no haber agregado la dirección de correo electrónico del remitente al lista de “Verificación de remitente único” en SendGrid. Sin embargo, puede enviar correos electrónicos desde remitentes no verificados siguiendo los siguientes pasos:

    1. Vaya al panel de control de SendGrid y vaya a “Configuración” y luego a “Autenticación del remitente”.
    2. En la sección “Autenticación de dominio”, agregue y verifique el nombre de dominio.

    3. En la sección “Verificación de remitente único”, seleccione “Crear una verificación de remitente único”.

    4. Ingrese la dirección de correo electrónico del remitente no verificado y haga clic en “Enviar verificación”.

    5. Siga el proceso de verificación de correo electrónico para verificar la dirección de correo electrónico del remitente.

    Una vez que la dirección de correo electrónico esté verificada, puede enviar correos electrónicos desde remitentes no verificados utilizando la implementación de Firebase Functions.

    Aquí está el código actualizado para su implementación de Firebase Function:

    import * as functions from "firebase-functions";
    const sgMail = require("@sendgrid/mail");
    
    sgMail.setApiKey("tu-clave-de-api");
    
    exports.emailMessage = functions.https.onCall(async (data) => {
      try {
        const msg = {
          to: "destinatario@example.com",
          from: data.sender,
          subject: `${data.name} te ha enviado un correo electrónico`,
          text: data.message,
          html: `<strong>${data.message}</strong>`,
        };
        await sgMail.send(msg);
        console.log("Correo electrónico enviado");
        return { status: "éxito", datos: data };
      } catch (error) {
        console.error(error);
        return { status: "error", error: error };
      }
    });
    

    Nota: Cambie la clave de API y la dirección de correo electrónico del destinatario en el código para que coincida con su cuenta de SendGrid y el destinatario del correo electrónico.

Comments are closed.