laravel

E-mails verzenden in Laravel met SMTP

E-mails verzenden in Laravel met SMTP
Het verzenden van een e-mail is een algemene vereiste voor elke webtoepassing web. Enkele algemene toepassingen van het verzenden van e-mails zijn het verifiëren van gebruikersregistratie, het krijgen van feedback van gebruikers, het bieden van opties om contact op te nemen met de sitebeheerder, enz. Het Laravel-framework bevat verschillende pakketten om e-mails te verzenden vanuit het Laravel-project. SMTP, Mailgun, Postmark en Amazon SES worden in Laravel gebruikt voor het verzenden van eenvoudige, transactie- en bulk-e-mails. Laravel heeft een bibliotheek voor het verzenden van e-mail met de naam SwiftMailer om een ​​e-mail te verzenden met een e-mailsjabloon. Deze tutorial laat je zien hoe je een eenvoudige e-mail verzendt met SMTP.

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=smtp
MAIL_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 EmailController

Voer 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-mail

Maak een weergavebestand met de naam e-mails verzenden.blad.php met de volgende code om het contactformulier weer te geven:.




Contactformulier












Neem contact op




@if (count($errors) > 0)



    @foreach ($errors->all() als $error)
  • $fout

  • @endforeach


@stop als
@if ($message = Session::get('success'))


$bericht

@stop als



csrf_field()


















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.

Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...