SMTP-configuratie en -configuratie
Open de .env bestand uit de hoofdmap van het Laravel-project en stel de configuratie in volgens uw Gmail-account. U moet de "Minder veilige app” optie van uw Gmail-account om een e-mail te verzenden met behulp van de Gmail SMTP-server.
MAIL_MAILER=smtpMAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=YOUR_EMAIL_ADDRESS
MAIL_PASSWORD=UW_PASSWORD
MAIL_ENCRYPTION=ssl
***Opmerking:
Mogelijk ontvangt u de SMTP-authenticatiefout tijdens het verzenden van e-mails met behulp van de SMTP Gmail-accountserver. Open de StreamBuffer.php bestand vanaf de volgende locatie:.
/var/www/html/laravelpro/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php
Zoek en vervang regel 259 met de volgende regel om de Gmail SMTP-server te verifiëren.
$options['ssl'] = array('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => waar);
E-mails verzenden met SMTP
Voer de volgende stappen uit om e-mail te verzenden met behulp van het contactformulier door een controller, weergave en mailklasse te maken:.
Stappen:
Voer de volgende opdracht uit vanaf de terminal om aan te maken: E-mailcontroller om het contactformulier te tonen en een e-mail te sturen met Laravel mail class.
$ php artisan make:controller EmailControllerVoer de volgende opdracht uit om een e-mailklasse met de naam te maken email verzenden. Dit maakt de klasse onder de App\Mail map.
$ php artisan make:mail verzendenE-mailMaak een weergavebestand met de naam e-mails verzenden.blad.php met de volgende code om het contactformulier weer te geven:.
Neem contact op
@if (count($errors) > 0)
- $fout
@foreach ($errors->all() als $error)
@endforeach
@stop als
@if ($message = Session::get('success'))
$bericht
@stop als
Open E-mailcontroller en wijzig de code met de volgende code:. De Mail gevel en email verzenden mailklassen worden geïmporteerd aan het begin van het bestand. Hier de inhoudsopgave() methode laadt het weergavebestand in de browser om het contactformulier weer te geven. Na het verzenden van het formulier, sturen() methode zal worden aangeroepen. Deze methode valideert het formulier met behulp van de validatieregels. De $gegevens array wordt gebruikt om de waarden van de te verzenden naam en bericht velden in de email verzenden klasse. Vervolgens wordt de e-mail verzonden met de Mail facade. U moet een geldig e-mailadres van de ontvanger instellen in de naar() functie voordat u de code uitvoert. Als de e-mail succesvol is verzonden, wordt een succesbericht afgedrukt.
naamruimte App\Http\Controllers;gebruik Illuminate\Http\Request;
gebruik Illuminate\Support\Facades\Mail;
gebruik App\Mail\sendingEmail;
klasse EmailController breidt Controller uit
functie-index()
return view('emailsend');
functie verzenden (Request $request)
$this->validate($request, [
'naam' => 'verplicht',
'e-mail' => 'vereist|e-mail',
'bericht' => 'vereist'
]);
$gegevens = matrix(
'naam' => $verzoek->naam,
'message' => $request->message
);
Mail::to('E-mailadres ontvanger')->send(new verzendenEmail($data));
return back()->with('succes', 'Bedankt dat je contact met ons hebt opgenomen!');
Open de email verzenden class en wijzig de code met de volgende code:. Het e-mailonderwerp wordt gedefinieerd in de bouwen() methode en de Email sjabloon weergave wordt gebruikt om de e-mailinhoud op te maken, gemaakt in de volgende stap. De waarden doorgegeven van de E-mailcontroller worden opgeslagen in de $e-mail object en worden doorgegeven in de Email sjabloon visie.
naamruimte App\Mail;gebruik Illuminate\Bus\Queueable;
gebruik Illuminate\Contracts\Wachtrij\ShouldWachtrij;
gebruik Illuminate\Mail\Mailable;
gebruik Illuminate\Queue\SerializesModels;
klasse verzendenE-mail breidt Mailable uit
gebruik Queueable, SerializesModels;
/**
* Maak een nieuwe berichtinstantie.
*
* @return ongeldig
*/
openbare $e-mails;
publieke functie __construct($emails)
$this->emails = $emails;
/**
* Bouw het bericht.zo
*
* @return $this
*/
publieke functie build()
return $this->subject('Bericht van bezoeker')
->view('email_template')
->with('e-mails', $this->e-mails);
Maak het sjabloonweergavebestand met de naam Email sjabloon.blad.php met de volgende code om de opgemaakte e-mail naar de afzender te sturen. De waarden doorgegeven van de email verzenden klasse worden gebruikt in deze sjabloon.
Hallo,
ik ben $e-mails['name']
Mijn vraag gaat over het volgende onderwerp:
$e-mails['bericht'] .
Het zal nuttig zijn als je me snel antwoord geeft.Dank u.
Open nu de web.php bestand en voeg de volgende routecode toe om het contactformulier te openen en de e-mail te verzenden.
Route::get('/contact', '[email protected]');Route::post('/sendemail/send', '[email protected]');
Voer de volgende URL uit vanuit de browser om het contactformulier te laden.
http://localhost/laravelpro/public/contact
Vul het formulier in en klik op de Bericht versturen om de inhoud van het formulier naar de . te sturen sturen() methode van de E-mailcontroller klasse.
Als de e-mail met succes is verzonden, ontvangt u het succesbericht, zoals weergegeven in de volgende afbeelding:.
Open nu het Gmail-account dat u hebt gebruikt om een e-mail te verzenden in de sturen() methode van de E-mailcontroller klasse. Als u de e-mail opent, krijgt u de volgende e-mailinhoud, gegenereerd met behulp van een: Email sjabloon bestand bekijken.
Video uitleg
Conclusie
Er zijn meerdere manieren in het Laravel-framework om een e-mail te verzenden. De meest eenvoudige en gemakkelijkste manier om e-mail te verzenden in Laravel wordt getoond in deze tutorial. Als je een Gmail-account hebt, kun je eenvoudig een e-mail sturen door de stappen in deze tutorial te volgen. De Gmail SMTP-server wordt hier gebruikt om een e-mail te verzenden en de taak voor het verzenden van e-mail wordt getest door de code vanaf de lokale server uit te voeren. Deze tutorial toont alleen HTML-geformatteerde e-mailverzendtaken. U kunt ook andere taken uitvoeren, zoals bestandsbijlagen, naam van de afzender, enz., door gebruik te maken van andere methoden van de Mail klasse.