Inviare email con SMTP e Laravel 9
Abbiamo già discusso di come inviare email in Laravel, ma nella versione 9 quel codice non funziona.
Ci stanno giusto un paio di modifiche da fare, che vediamo qui sotto.
Come per il precedente articolo, trovo che la documentazione non sia esaustiva in questo caso.
Intanto sembra partire dal presupposto di usare una view, che io non ho perchè sto usando Laravel per una API; poi non parla della configurazione del file .env.
Partiamo proprio da questo:
MAIL_MAILER=smtp
MAIL_HOST=SMTP_HOST
MAIL_PORT=PORTA_SMTP
MAIL_USERNAME=EMAIL_DA_CUI_INVIARE
MAIL_PASSWORD=PASSWORD_EMAIL
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=EMAIL_DA_CUI_INVIARE
MAIL_FROM_NAME="${APP_NAME}"
Poi il controller di esempio:
namespace App\Http\Controllers;
use Illuminate\Support\FacadesMail;
class TestController extends Controller {
public function index() {
$html = "<p>Test invio</p>";
$subject = 'Invio di email da Laravel 9';
$email = 'email@email.it';
Mail::send([], [], function ($message) use ($html, $email, $subject) {
$message
->to($email)
->subject($subject)
->html($html);
});
}
}
Enjoy!
php laravel email smtp
1 Commenti
mi da questo errore: Failed to authenticate on SMTP server with username "riccardoributtini@gmail.com" using the following authenticators: "LOGIN", "PLAIN", "XOAUTH2". Authenticator "LOGIN" returned "Expected response code "235" but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials hq15-
21/01/2023