Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

231
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!