laravel

Invia e-mail in Laravel utilizzando SMTP

Invia e-mail in Laravel utilizzando SMTP
L'invio di un'e-mail è un requisito comune per qualsiasi applicazione web. Alcuni usi generali dell'invio di e-mail includono la verifica della registrazione dell'utente, la ricezione di feedback dagli utenti, la fornitura di opzioni per contattare l'amministratore del sito, ecc. Il framework Laravel contiene diversi pacchetti per inviare email dal progetto Laravel. SMTP, Mailgun, Postmark e Amazon SES sono utilizzati in Laravel per l'invio di e-mail semplici, transazionali e di massa. Laravel ha una libreria per l'invio di e-mail denominata SwiftMailer per inviare un'e-mail con un modello di e-mail. Questo tutorial ti mostra come inviare una semplice email usando SMTP.

Impostazione e configurazione SMTP

Apri il .env file dalla cartella principale del progetto Laravel e imposta la configurazione in base al tuo account Gmail. Devi abilitare il "App meno sicura"opzione del tuo account Gmail per inviare un'e-mail utilizzando il server SMTP di Gmail.

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.come
MAIL_PORT=465
MAIL_USERNAME=IL_TUO_INDIRIZZO_EMAIL
MAIL_PASSWORD=LA TUA_PASSWORD
MAIL_ENCRYPTION=ssl

***Nota:

Potresti ricevere l'errore di autenticazione SMTP durante l'invio di e-mail utilizzando il server dell'account Gmail SMTP. Apri il StreamBuffer.php file dalla seguente posizione.

/var/www/html/laravelpro/vendor/swiftmailer/swiftmailer/
lib/classes/Swift/Transport/StreamBuffer.php

Trova e sostituisci riga 259 con la seguente riga per autenticare il server SMTP di Gmail.

$options['ssl'] = array('verify_peer' => false, 'verify_peer_name' => false,
'allow_self_signed' => vero);

Invio di email tramite SMTP

Eseguire i seguenti passaggi per inviare e-mail utilizzando il modulo di contatto creando un controller, una vista e una classe di posta.

Passaggi:

Esegui il seguente comando dal terminale per creare EmailController per mostrare il modulo di contatto e inviare un'e-mail utilizzando la classe di posta di Laravel.

$ php craft make:controller EmailController

Esegui il seguente comando per creare una classe di posta denominata invioEmail. Questo creerà la classe sotto il App\Posta cartella.

$ php artigiano make:mail sendEmail

Crea un file di visualizzazione denominato inviare email email.lama.php con il seguente codice per visualizzare il form di contatto.




Contattaci Form












Contattaci




@if (count($errors) > 0)



    @foreach ($errors->all() as $error)
  • $errore

  • @endforeach


@finisci se
@if ($messaggio = Sessione::get('successo'))


$messaggio

@finisci se



csrf_field()


















Aperto EmailController e modificare il codice con il seguente codice. Il posta facciata e invioEmail le classi di posta vengono importate all'inizio del file. qui, il indice() Il metodo caricherà il file di visualizzazione nel browser per visualizzare il modulo di contatto. Dopo aver inviato il modulo, il Spedire() verrà chiamato il metodo. Questo metodo convaliderà il modulo utilizzando le regole di convalida. Il $dati array viene utilizzato per inviare i valori di nome e Messaggio campi nel invioEmail classe. Successivamente, l'e-mail viene inviata utilizzando il posta facciata. È necessario impostare un indirizzo email valido del destinatario nel per() funzione prima di eseguire il codice. Se l'e-mail viene inviata correttamente, verrà stampato un messaggio di successo.

spazio dei nomi App\Http\Controllers;
usa Illumina\Http\Request;
usa Illumina\Support\Facades\Mail;
usa App\Mail\sendingEmail;
class EmailController estende Controller

indice di funzione()

return view('invio email');

funzione send(Richiesta $richiesta)

$this->validate($request, [
'nome' => 'richiesto',
'email' => 'richiesto|e-mail',
'messaggio' => 'richiesto'
]);
$dati = matrice(
'nome' => $richiesta->nome,
'messaggio' => $richiesta->messaggio
);
Mail::to('Indirizzo e-mail del destinatario')->send(new SendEmail($data));
return back()->with('success', 'Grazie per averci contattato!');

Apri il invioEmail class e modificare il codice con il seguente codice. L'oggetto dell'email è definito all'interno del costruire() metodo e il email_template vista viene utilizzata per formattare il contenuto dell'e-mail, creato nel passaggio successivo. I valori passati dal EmailController sono memorizzati nel $email oggetto e sono passati nel email_template Visualizza.

spazio dei nomi App\Mail;
usa Illumina\Bus\Queueable;
usa Illumina\Contracts\Queue\ShouldQueue;
usa Illumina\Mail\Mailable;
usa Illumina\Queue\SerializesModels;
class sendEmail estende Mailable

usa Queueable, SerializesModels;
/**
* Crea una nuova istanza di messaggio.
*
* @return void
*/
$email pubbliche;
funzione pubblica __construct($email)

$questo->e-mail = $e-mail;

/**
* Costruisci il messaggio.S
*
* @return $this
*/
funzione pubblica build()

return $this->subject('Messaggio del visitatore')
->view('email_template')
->with('email', $this->email);

Crea il file di visualizzazione del modello denominato email_template.lama.php con il seguente codice per inviare la mail formattata al mittente. I valori passati dal invioEmail classe sono usati in questo modello.

Ciao,
sono $email['nome']


La mia domanda riguarda il seguente argomento:


$email['messaggio'] .


Mi sarà utile se mi dai una risposta presto.Grazie.

Ora apri il ragnatela.php file e aggiungere il seguente codice di percorso per aprire il modulo di contatto e inviare l'e-mail.

Route::get('/contact', '[email protected]');
Route::post('/sendmail/send', '[email protected]');

Esegui il seguente URL dal browser per caricare il modulo di contatto.

http://localhost/laravelpro/public/contact

Compila il form e clicca su Invia messaggio pulsante per inviare il contenuto del modulo al Spedire() metodo del EmailController classe.

Se l'e-mail viene inviata con successo, otterrai il messaggio di successo, come mostrato nell'immagine seguente.

Ora apri l'account Gmail che hai utilizzato per inviare un'e-mail nel in Spedire() metodo del EmailController classe. Se apri l'e-mail, otterrai il seguente contenuto dell'e-mail, generato utilizzando un email_template vedi il file.

Tutorial video

Conclusione

Esistono diversi modi nel framework Laravel per inviare un'e-mail. Il modo più semplice e facile per inviare e-mail in Laravel è mostrato in questo tutorial. Se hai un account Gmail, puoi facilmente inviare un'e-mail seguendo i passaggi mostrati in questo tutorial. Il server SMTP di Gmail viene utilizzato qui per inviare un'e-mail e l'attività di invio dell'e-mail viene testata eseguendo il codice dal server locale. Questo tutorial mostra solo le attività di invio di email in formato HTML. Puoi anche eseguire altre attività, come file allegati, nome del mittente, ecc., utilizzando altri metodi di posta classe.

Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...
Come invertire la direzione di scorrimento del mouse e dei touchpad in Windows 10
Topo e Touchpads non solo rende l'elaborazione semplice, ma anche più efficiente e richiede meno tempo. Non possiamo immaginare una vita senza questi ...
Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...