Invio di e-mail tramite il server SMTP di Gmail in Laravel
Vuoi utilizzare il server SMTP di Gmail per inviare e-mail in Laravel? A volte il tuo server non invia e-mail a causa delle sue limitazioni o configurazioni errate. In tali scenari, è possibile utilizzare il server SMTP per l’invio di e-mail. In questo articolo, discutiamo come inviare e-mail utilizzando il server SMTP di Gmail in Laravel.
Utilizzando il server SMTP, le tue email non finiranno nella cartella spam. In generale, verrà trattata come un’e-mail autentica e verrà inserita nella casella di posta dell’utente.
Un altro vantaggio dell’utilizzo del server SMTP è che puoi inviare e-mail anche dal tuo server locale. Sarà utile testare la funzionalità della posta elettronica sul server locale stesso.
Configurazione del server SMTP di Gmail in Laravel
Laravel utilizza il config/mail.php
file per memorizzare i dettagli relativi ai provider di posta elettronica. Questo file contiene impostazioni come MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, ecc. L’utente dovrebbe fornire queste informazioni che verranno utilizzate da Laravel e inviare le tue email.
Per aggiungere queste informazioni, non è necessario modificare config/mail.php. Invece, dovresti memorizzare questi dettagli nel .env
file.
Apri il tuo .env
file che si trova nella tua directory principale e troverai di seguito il codice relativo alle impostazioni della posta elettronica.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Modifica i dettagli sopra come segue.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Qui, ho impostato il driver come smtp, l’host per Gmail come smtp.googlemail.com, la porta SMTP per Gmail come 465 e il metodo di crittografia su ssl. Assicurati di sostituire i segnaposto GMAIL_USERNAME, GMAIL_PASSWORD con il tuo nome utente e password Gmail effettivi.
Per utilizzare il server SMTP di Gmail, devi modificare alcune impostazioni del tuo account Google. Accedi al tuo account Google e fai clic su "Account". Una volta che sei nella pagina "Account", fai clic su "Sicurezza". Scorri verso il basso e troverai le impostazioni "Accesso alle app meno sicure". Impostalo su ON.
Codice per l’invio di e-mail in Laravel
A questo punto, hai completato tutte le impostazioni di base. Ora devi scrivere un codice Laravel che invierà un’email.
Per questo tutorial, utilizzerò una classe "Mail" per scrivere codice. L’utente può anche scrivere il codice utilizzando Laravel Mailable. Non farà alcuna differenza. In entrambi i casi, Laravel utilizza il server SMTP di Gmail in background.
Quando usi la classe ‘Mail’ il tuo codice sarà qualcosa di simile a quanto scritto di seguito.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
Nel codice sopra, sto usando la vista ’emails.mail’. Significa che devi creare una cartella e un file come resources->views->emails->mail.blade.php
.
Il tuo mail.blade.php
conterrà il codice come segue.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
Questo è tutto! Ora, in background, Laravel utilizzerà automaticamente il server SMTP di Gmail e invierà le tue e-mail.
articoli Correlati
- Test e-mail di Laravel: Mailtrap contro altre opzioni
- Come registrare la query in Laravel
- Come installare e utilizzare CKEditor in Laravel