Home Projects Portfolio Dashboard Export PDF Log in
PHP Laravel

Implementación de pruebas para el servicio de correo en drolguinapi

En el proyecto drolguinapi, estamos trabajando en mejorar la fiabilidad de nuestras comunicaciones automatizadas mediante Laravel. Recientemente, hemos dedicado una semana completa a realizar pruebas exhaustivas en nuestro servicio de envío de correos electrónicos.

El objetivo de este esfuerzo es garantizar que las notificaciones transaccionales lleguen a su destino correctamente, manejando errores de conexión y tiempos de espera de manera eficiente. En el ecosistema de Laravel, esto implica aprovechar las clases Mail y los sistemas de colas (queues) para desacoplar el proceso de envío de la solicitud HTTP principal.

Estrategia de pruebas

Para validar este servicio, implementamos un entorno de pruebas que permite simular el envío sin necesidad de utilizar un servidor SMTP real durante el desarrollo. Utilizamos el facade de Mail para verificar que los mensajes se procesen correctamente:

use Illuminate\Support\Facades\Mail;
use App\Mail\NotificacionUsuario;

public function test_envio_correo_exitoso()
{
    Mail::fake();

    $this->post('/api/enviar-notificacion', ['email' => '[email protected]']);

    Mail::assertSent(NotificacionUsuario::class, function ($mail) {
        return $mail->hasTo('[email protected]');
    });
}

Consideraciones técnicas

Al trabajar con servicios de terceros, es vital implementar "retries" o reintentos. Laravel facilita esto mediante la configuración de colas, lo que nos permite definir cuántas veces debe intentar reenviarse un correo si el servicio externo falla temporalmente. Esta capa de robustez asegura que nuestro sistema sea resiliente ante caídas momentáneas del proveedor de correo.

Implementación de pruebas para el servicio de correo en drolguinapi
Gerardo Ruiz

Gerardo Ruiz

Author

Share: