Laravel - Invio di e-mail
Laravel utilizza una libreria gratuita ricca di funzionalità SwiftMailerper inviare e-mail. Utilizzando la funzione libreria, possiamo inviare facilmente e-mail senza troppi problemi. I modelli di posta elettronica vengono caricati allo stesso modo delle visualizzazioni, il che significa che puoi utilizzare la sintassi Blade e inserire dati nei modelli.
La tabella seguente mostra la sintassi e gli attributi di send funzione -
| Sintassi | void send (string | array $ view, array $ data, Closure | string $ callback) | 
| Parametri |  
        
  |  
      
| ritorna | Niente | 
| Descrizione | Invia e-mail. | 
Nel terzo argomento, la chiusura $ callback ha ricevuto l'istanza del messaggio e con quell'istanza possiamo anche chiamare le seguenti funzioni e modificare il messaggio come mostrato di seguito.
- $ messaggio → oggetto ('Benvenuto al punto tutorial');
 - $ messaggio → da ('[email protected] ',' Mr. Example ');
 - $ messaggio → a ('[email protected] ',' Mr. Example ');
 
Alcuni dei metodi meno comuni includono:
- $ messaggio → mittente ('[email protected] ',' Mr. Example ');
 - $ messaggio → returnPath ('[email protected] ');
 - $ messaggio → cc ('[email protected] ',' Mr. Example ');
 - $ messaggio → bcc ('[email protected] ',' Mr. Example ');
 - $ messaggio → replyTo ('[email protected] ',' Mr. Example ');
 - $ messaggio → priorità (2);
 
Per allegare o incorporare file, puoi utilizzare i seguenti metodi:
- $ messaggio → allegare ('percorso / a / allegato.txt');
 - $ messaggio → embed ('percorso / a / allegato.jpg');
 
La posta può essere inviata come HTML o testo. È possibile indicare il tipo di posta che si desidera inviare nel primo argomento passando un array come mostrato di seguito. Il tipo predefinito è HTML. Se desideri inviare messaggi di testo normale, utilizza la seguente sintassi.
Sintassi
Mail::send([‘text’=>’text.view’], $data, $callback); 
    In questa sintassi, il primo argomento accetta un array. Usotext come nome della chiave della vista come valore della chiave.
Esempio
Step 1 - Ora invieremo un'email dall'account Gmail e per questo dovrai configurare il tuo account Gmail nel file dell'ambiente Laravel - .envfile. Abilita la verifica in due passaggi nel tuo account Gmail e crea una password specifica per l'applicazione seguita modificando i parametri .env come mostrato di seguito.
.env
MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls 
    Step 2 - Dopo aver cambiato il file .env file esegui i due comandi seguenti per cancellare la cache e riavviare il server Laravel.
php artisan config:cache 
    Step 3 - Crea un controller chiamato MailController eseguendo il seguente comando.
php artisan make:controller MailController --plain 
    Step 4 - Dopo aver eseguito con successo, riceverai il seguente output -
 
    Step 5 - Copia il seguente codice in formato
app/Http/Controllers/MailController.php file.
app/Http/Controllers/MailController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class MailController extends Controller {
   public function basic_email() {
      $data = array('name'=>"Virat Gandhi");
   
      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('[email protected]', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         $message->attach('C:\laravel-master\laravel\public\uploads\image.png');
         $message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('[email protected]','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
} 
    Step 6 - Copia il seguente codice in formato resources/views/mail.blade.php file.
resources/views/mail.blade.php
<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p> 
    Step 7 - Aggiungi le seguenti righe app/Http/routes.php.
app/Http/routes.php
Route::get('sendbasicemail','[email protected]_email');
Route::get('sendhtmlemail','[email protected]_email');
Route::get('sendattachmentemail','[email protected]_email'); 
    Step 8 - Visita il seguente URL per testare l'email di base.
http://localhost:8000/sendbasicemail 
    Step 9- La schermata di output sarà simile a questa. Controlla la tua casella di posta per vedere l'output email di base.
 
    Step 10 - Visita il seguente URL per testare l'email HTML.
http://localhost:8000/sendhtmlemail 
    Step 11- La schermata di output sarà simile a questa. Controlla la tua casella di posta per vedere l'output dell'email html.
 
    Step 12 - Visita il seguente URL per testare l'e-mail HTML con allegato.
http://localhost:8000/sendattachmentemail 
    Step 13 - È possibile visualizzare il seguente output
 
    Note - Nel MailController.phpfile l'indirizzo e-mail nel metodo da dovrebbe essere l'indirizzo e-mail da cui è possibile inviare l'indirizzo e-mail. Generalmente, dovrebbe essere l'indirizzo e-mail configurato sul tuo server.
