laravel

Send e-mails i Laravel ved hjælp af SMTP

Send e-mails i Laravel ved hjælp af SMTP
Afsendelse af en e-mail er et almindeligt krav til enhver webapplikation. Nogle generelle anvendelser af afsendelse af e-mails inkluderer verifikation af brugerregistrering, feedback fra brugere, mulighed for at kontakte webstedsadministrator osv. Laravel-rammen indeholder flere pakker til at sende e-mails fra Laravel-projektet. SMTP, Mailgun, Poststempel og Amazon SES bruges i Laravel til at sende enkle, transaktions- og bulk-e-mails. Laravel har et e-mail-bibliotek med navnet SwiftMailer til at sende en e-mail med en e-mail-skabelon. Denne vejledning viser dig, hvordan du sender en simpel e-mail ved hjælp af SMTP.

SMTP-opsætning og konfiguration

Åbn .env fil fra rodmappen i Laravel-projektet, og konfigurer konfigurationen i henhold til din Gmail-konto. Du skal aktivere “Mindre sikker app”Mulighed for din Gmail-konto til at sende en e-mail ved hjælp af Gmail SMTP-serveren.

MAIL_MAILER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = DIN_EMAIL_ADDRESS
MAIL_PASSWORD = DIN_PASSWORD
MAIL_ENCRYPTION = ssl

***Bemærk:

Du modtager muligvis SMTP-godkendelsesfejl, mens du sender e-mails ved hjælp af SMTP Gmail-kontoserveren. Åbn StreamBuffer.php fil fra følgende placering.

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

Find og udskift linje 259 med følgende linje for at godkende Gmail SMTP-serveren.

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

Afsendelse af e-mails ved hjælp af SMTP

Udfør følgende trin for at sende e-mail ved hjælp af kontaktformularen ved at oprette en controller-, visnings- og mailklasse.

Trin:

Kør følgende kommando fra terminalen for at oprette EmailController for at vise kontaktformularen og sende en e-mail ved hjælp af Laravel mail klasse.

$ php håndværkermærke: controller EmailController

Kør følgende kommando for at oprette en mailklasse med navnet sendingE-mail. Dette vil skabe klassen under App \ Mail folder.

$ php håndværkerfabrik: mail sendingE-mail

Opret en visningsfil med navnet emailsend.klinge.php med følgende kode for at få vist kontaktformularen.




Kontakt os formular












Kontakt os




@if (antal ($ fejl)> 0)



    @foreach ($ fejl-> alle () som $ fejl)
  • $ error

  • @endforeach


@Afslut Hvis
@if ($ besked = Session :: get ('succes'))


$ besked

@Afslut Hvis



csrf_field ()


















Åben EmailController og rediger koden med følgende kode. Det Post facade og sendingE-mail mailklasser importeres i begyndelsen af ​​filen. Her, den indeks() metode indlæser visningsfilen i browseren for at vise kontaktformularen. Efter at have indsendt formularen, sende() metode kaldes. Denne metode validerer formularen ved hjælp af valideringsreglerne. Det $ data array bruges til at sende værdierne for navn og besked felter i sendingE-mail klasse. Derefter sendes e-mailen ved hjælp af Post facade. Du skal angive en gyldig e-mail-adresse til modtageren i til() funktion, før koden udføres. Hvis e-mailen sendes med succes, udskrives en succesmeddelelse.

navneområde App \ Http \ Controllers;
brug Illuminate \ Http \ Request;
brug Illuminate \ Support \ Facades \ Mail;
brug App \ Mail \ sendingEmail;
klasse EmailController udvider Controller

funktionsindeks ()

returvisning ('emailsend');

funktion send (Anmod $ anmodning)

$ dette-> valider ($ anmodning, [
'name' => 'krævet',
'email' => 'påkrævet | e-mail',
'message' => 'krævet'
]);
$ data = array (
'navn' => $ anmodning-> navn,
'besked' => $ anmodning-> besked
);
Mail :: til ('Modtagerens e-mail-adresse') -> send (ny sendingEmail ($ data));
vende tilbage () -> med ('succes', 'Tak for at kontakte os!');

Åbn sendingE-mail klasse og ændre koden med følgende kode. E-mail-emnet er defineret inde i bygge () metode og email_template visning bruges til at formatere e-mail-indholdet, oprettet i næste trin. Værdierne overført fra EmailController er gemt i $ e-mail objekt og sendes i email_template udsigt.

navneområde App \ Mail;
brug Illuminate \ Bus \ Queueable;
brug Illuminate \ Contracts \ Queue \ ShouldQueue;
brug Illuminate \ Mail \ Mailable;
brug Illuminate \ Queue \ SerializesModels;
klasse sendingEmail udvider Mailable

brug i kø, SerializesModels;
/ **
* Opret en ny beskedforekomst.
*
* @ tilbagevenden ugyldig
* /
offentlige $ e-mails;
offentlig funktion __construct ($ emails)

$ dette-> e-mails = $ e-mails;

/ **
* Byg beskeden.s
*
* @ Retur $ dette
* /
offentlig funktion build ()

returner $ dette-> emne ('Besked fra besøgende')
-> vis ('email_template')
-> med ('emails', $ this-> emails);

Opret skabelonvisningsfilen med navnet email_template.klinge.php med følgende kode for at sende den formaterede e-mail til afsenderen. Værdierne overført fra sendingE-mail klasse bruges i denne skabelon.

Hej,
Jeg er $ emails ['name']


Min forespørgsel handler om følgende emne:


$ emails ['message'].


Det vil være nyttigt, hvis du snart giver mig svar.tak skal du have.

Åbn nu web.php fil og tilføj følgende rutekode for at åbne kontaktformularen og sende e-mailen.

Rute :: get ('/ contact', '[email protected]');
Rute :: post ('/ sendemail / send', '[email protected]');

Kør følgende URL fra browseren for at indlæse kontaktformularen.

http: // localhost / laravelpro / public / contact

Udfyld formularen og klik på Send besked knap for at sende indholdet af formularen til sende() metode til EmailController klasse.

Hvis e-mailen er sendt med succes, får du succesmeddelelsen som vist på det følgende billede.

Åbn nu den Gmail-konto, som du brugte til at sende en e-mail i sende() metode til EmailController klasse. Hvis du åbner e-mailen, får du følgende e-mail-indhold, genereret ved hjælp af en email_template Se fil.

Video tutorial

Konklusion

Der findes flere måder i Laravel-rammen for at sende en e-mail. Den mest enkle og nemmeste måde at sende e-mail i Laravel vises i denne vejledning. Hvis du har en Gmail-konto, kan du nemt sende en e-mail ved at følge trinnene vist i denne vejledning. Gmail SMTP-serveren bruges her til at sende en e-mail, og e-mail-afsendelsesopgaven testes ved at køre koden fra den lokale server. Denne vejledning viser kun HTML-formaterede e-mail-afsendelsesopgaver. Du kan også udføre andre opgaver, som vedhæftet fil, afsendernavn osv., ved hjælp af andre metoder til Post klasse.

Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...
Mus Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
I de senere år har computere og operativsystemer udviklet sig meget. Der var et tidspunkt, hvor brugerne skulle bruge kommandoer til at navigere genne...
Mus Styr og administrer musebevægelse mellem flere skærme i Windows 10
Styr og administrer musebevægelse mellem flere skærme i Windows 10
Dual Display Mouse Manager lader dig kontrollere og konfigurere musebevægelse mellem flere skærme ved at bremse dens bevægelser nær grænsen. Windows 1...