Unikanie przypadkowych wysyłek wiadomości e-mail za pomocą funkcji alwaysTo()

  • Reading time ~ 2 min
  • 20.09.2022
Czasami przypadkowo wysyłamy tysiące e-maili do prawdziwych klientów z naszego środowiska pomostowego. Istnieje wiele sposobów na uniknięcie tego, ale Laravel ma fajną, łatwą metodę po wyjęciu z pudełka!

W Laravel istnieje (jak na razie) nieudokumentowany sposób zapobiegania wysyłaniu e-maili na stary adres.

Dlaczego to jest przydatne? Cóż, niektórzy z nas nie są idealni 😅. Czasami przypadkowo wysyłamy tysiące e-maili do prawdziwych klientów z naszego środowiska postojowego lub nawet w naszych testach.

Istnieje wiele sposobów na uniknięcie tego, ale Laravel ma fajną, łatwą metodę. z pudełka!

# File app/Providers/AppServiceProvider.php
 
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\ServiceProvider;
 
class AppServiceProvider extends ServiceProvider
{
    // Stuff omitted
 
    public function boot()
    {
        f (! app()->environment('production')) {
            Mail::alwaysTo('[email protected]');
        }
    }
}

Co się dzieje z alwaysTo?

Przydatna metoda alwaysTo() zastąpi-wszystkie adresy dodane w to, cc i bcc w ramach wiadomość e-mail.

Odbywa się to w klasie Illuminate\Mail\Mailer (patrz tutaj). Zwróć uwagę na komentarz do kodu:

// If a global "to" address has been set, we will set that address on the mail
// message. This is primarily useful during local development in which each
// message should be delivered into a single mail address for inspection.
if (isset($this->to['address'])) {
    $this->setGlobalToAndRemoveCcAndBcc($message);
}

Więc w powyższym kodzie mówimy Laravelowi, aby wysyłał e-maile na adres [email protected] tylko wtedy, gdy NIE znajdujemy się w środowisku produkcyjnym!

Original
Yurij Finiv

Yurij Finiv

Full stack

ABOUT

I'm full stack laravel developer

I knew my call in programming back in 2006.

WORK EXPERIENCE
CONTACT
Ukraine, Lutsk
+380979856297