Actualmente estoy usando SendGrid como un servicio de correo electrónico en una aplicación web y quiero configurar mi entorno de desarrollo para enviar correos electrónicos a https://ethereal.email/ para asegurarme de que se vean correctamente. La forma en que lo tengo configurado actualmente es que nodemailer.createTestAccount() al inicio, luego registraré las credenciales, luego, si necesito ver los correos electrónicos, tengo que ir manualmente al sitio etéreo para iniciar sesión y ver todos los correos electrónicos
Como estoy usando SendGrid para enviar los mensajes, no puedo simplemente usar nodemailer.getTestMessageUrl(info) , pero realmente me gustaría poder registrar la URL cada vez que se envía un correo electrónico en desarrollo, entonces podría ir directamente al mensaje
Ya intenté imprimir la respuesta de SendGrid, además de conectarme a través de IMAP y cargar el mensaje más reciente, pero ninguno de ellos contiene el ID del mensaje en ninguna parte que pueda ver.
¿Hay alguna forma de obtener la identificación del mensaje de un correo electrónico enviado a ethereal.email y construir una URL directamente al mensaje?
Mi entorno es node.js y estoy usando @sendgrid/mail para enviar mensajes.
¡Gracias!
Desarrollador evangelista de Twilio SendGrid aquí.
La documentación de Nodemailer aquí sugiere que use ethereal.email como su configuración SMTP en desarrollo. Luego puede usar nodemailer.getTestMessageUrl(info) para obtener la URL correcta.
Dice que está utilizando @sendgrid/mail para enviar mensajes, que no responderán con la URL ya que no se envía a través del servidor SMTP de ethereal.email. Si desea esa URL, lo mejor que puede hacer es reemplazar SendGrid en su entorno de desarrollo/prueba con ethereal.email.
Puede hacer esto creando sus propios objetos de envío de correo electrónico con la misma interfaz, uno para @sendgrid/mail y otro para Nodemailer con credenciales ethereal.email y cargue el objeto que desee según el entorno.
Por ejemplo:
class SendGridEmail { constructor(sgApiKey) { // construct SG mail object } sendEmail(options) { // use SG mail object to send email } } class NodemailerEmail { constructor() { } sendEmail(options) { } } function getMailer() { if (process.env.NODE_ENV === "production") { return new SendGridEmail(process.env.SG_API_KEY); } else { return new NodemailerEmail(); } } // later getMailer().sendEmail(options);