Laravel invio Posta e-mail, ma restituisce false

Sto cercando di inviare una e-mail e mostrare eventuali errori, se necessario. Il codice riportato di seguito è l’invio di una e-mail e ricevo bene. Il problema, però, è che quando faccio il check di $inviati var, restituisce false per me.

Sono solo manca qualcosa qui? Potrebbe essere, perché è tardi. Chi lo sa…

$sent = Mail::send('emails.users.reset', compact('user', 'code'), function($m) use ($user)
{
    $m->to($user->email)->subject('Activate Your Account');
});

if( ! $sent)
{
    $errors = 'Failed to send password reset email, please try again.';
}

 

One Reply
  1. 36

    Mail::metodo send() non restituisce nulla.

    È possibile utilizzare la Mail::guasti() (introdotto nel paragrafo 4.1 penso) il metodo per ottenere un array di destinatari, in il codice sarebbe simile a questa.

    Mail::send('emails.users.reset', compact('user', 'code'), function($m) use ($user)
    {
        $m->to($user->email)->subject('Activate Your Account');
    });
    
    if(count(Mail::failures()) > 0){
        $errors = 'Failed to send password reset email, please try again.';
    }
    • Grazie per l’aiuto! Ho visto tutti i tipi di modi diversi, mentre la ricerca e ho capito che ho assunto quello che ho è il modo corretto. Grazie!
    • Non c’è un problema con questo, come se la dichiarazione è dopo la mail::inviare e prima che la richiamata passato alla Mail::invio viene eseguito e che proprio la parte di codice che invia l’e-mail?
    • Scusa per il ritardo della risposta, ho perso la domanda in qualche modo. Penso che si può essere un po ‘ confuso su che (stato codifica un sacco di JS di recente?) – Richiamata sarà sempre eseguito prima che l’istruzione if, non è chiamato in modo asincrono.
    • Sì! isnt Mail::send() asincrono? Penso che si potrebbe creare un evento che se un messaggio non sarà inviato, si accoda un lavoro di inviare nuovamente la mail.
    • Mail::send() non è asincrono. Si può mettere in coda mail chiamando Mail::coda() al posto di inviare metodo di cui sopra, ma comunque non è tecnicamente async, si crea solo una coda di lavoro, invece di inviare le mail e gli errori sono preso dal lavoro di coda.

Lascia un commento