Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
Laravel "universal a" en desarrollo vs producción

Estoy trabajando con una aplicación Laravel 5.2. En mis entornos de desarrollo y ensayo, me gustaría utilizar la opción de configuración de correo "Universal To" descrita en los documentos . Un universal para en entornos de desarrollo garantiza que todos los correos electrónicos vayan a esa dirección, en lugar de a los clientes/clientes reales/lo que sea.

Sin embargo, no puedo encontrar la manera de especificar esto de manera diferente en producción. En producción, no debería haber direcciones universales: los correos electrónicos deberían enviarse a direcciones reales.

El enfoque estándar de usar diferentes valores de env() no parece funcionar. Por ejemplo:

config/correo.php :

 'to' => [ 'address' => env('UNIVERSAL_TO', false) ],

desarrollo .env :

 UNIVERSAL_TO=my-testing-address@somewhere.com

Esto funciona bien: todos los correos electrónicos van al UNIVERSAL_TO especificado, como se esperaba. Pero si cambio eso a lo que querré en producción, por ejemplo:

producción .env

 UNIVERSAL_TO=

(o ='' , o =false , o simplemente omitiendo esto por completo), el envío de cualquier correo falla con (en storage/laravel.log ):

local.ERROR: excepción 'Swift_RfcComplianceException' con el mensaje 'La dirección en el buzón dada [] no cumple con RFC 2822, 3.6.2.' en ruta/al/proveedor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php:348

config/mail.php solo está devolviendo una matriz, así que supongo que podría configurarlo como una variable y luego, dependiendo del entorno, agregarle el 'a', así:

 $return = [ ... normal mail config array ... ]; if (!\App::environment('production')) { $return['to'] => [ 'address' => 'my-testing-address@somewhere.com' ]; } return $return;

Pero esto parece un poco... raro. ¿Hay una mejor manera?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Creo que esto debería funcionar: deja config('mail.to') como null a menos que se establezca UNIVERSAL_TO .

 'to' => env('UNIVERSAL_TO', false) ? [ 'address' => env('UNIVERSAL_TO'), 'name' => env('UNIVERSAL_TO_NAME') ] : null,
about 4 years ago · Santiago Trujillo Denunciar

0

Me topé con este problema cuando busqué en Google este comportamiento. Como las respuestas no son perfectas, decidí agregar mis resultados.

Si alguna vez se rompió, parece que esto se ha solucionado ahora. Al omitir UNIVERSAL_TO en su archivo .env, el correo solo se enviará al destinatario designado.

Quizás el problema era que no tenía un valor null , sino false como predeterminado.

config/correo.php

 'to' => [ 'address' => env('MAIL_GLOBAL_RECIPIENT'), // when not found, defaults to null 'name' => 'Developer' ],

env local

 MAIL_GLOBAL_RECIPIENT=my@email.com

production .env ni siquiera tiene esa variable

about 4 years ago · Santiago Trujillo Denunciar

0

Sí, todavía hago más o menos lo que llamas una manera hacky y por ahora todavía no he encontrado mejores formas.

 $default = [ .... ] if (env('APP_ENV', 'local') === 'staging'){ $default['to'] = [ 'address' => 'webmaster@xxx.com', ] } return $default;
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda