Czy istnieje sposób użycia klasy "Event" Laravel do uruchomienia kodu przed wysłaniem każdego e-maila? Chciałbym również możliwość anulowania Mail::send();
.Laravel Mail Listener (przed wysłaniem - możliwość anulowania)
Oczywiście mogę to zrobić, zanim wyślę e-mail:
Event::fire('email.beforeSend');
A potem mogę słuchać w ten sposób:
Event::listen('email.beforeSend', function()
{
//my code here
});
Problemem jest to, że muszę pamiętać, aby uruchomić Event::fire()
którego nie chciałbym robić. W moim przypadku podrzucam adres e-mail na listę rezygnacji z subskrypcji, aby upewnić się, że nie wysyłam spamu.
Interesujące. Więc mój słuchacz będzie wyglądał jak "Event :: listen" ("mailer.sending", function() {}); '? Nie jestem zaznajomiony z 'Mail :: pretend();' Zgaduję, że robi to samo co ''udaje' => false' w config. Zaskoczę to i wrócę do ciebie. – sterfry68
Myślę, że 'Mail :: pretend();" będzie "udawać", że wyśle kolejną wiadomość e-mail, ale nie anuluje bieżącej wiadomości e-mail. Czy mam rację? http://laravel.com/docs/4.2/mail#mail-and-local- development – sterfry68
Włączy się tryb "udawania". Następne wiersze w teście 'sendSwiftMessage' dla tego trybu i pomiń wysyłkę. – ceejayoz