laravel

Skicka e-postmeddelanden i Laravel med SMTP

Skicka e-postmeddelanden i Laravel med SMTP
Skicka ett e-postmeddelande är ett vanligt krav för alla webbapplikationer. Några allmänna användningsområden för att skicka e-post inkluderar att verifiera användarregistrering, få feedback från användare, tillhandahålla alternativ för att kontakta webbplatsadministratören, etc. Laravel-ramverket innehåller flera paket för att skicka e-post från Laravel-projektet. SMTP, Mailgun, Postmark och Amazon SES används i Laravel för att skicka enkla, transaktions- och bulk-e-postmeddelanden. Laravel har ett e-postmeddelande som heter SwiftMailer för att skicka ett e-postmeddelande med en e-postmall. Denna handledning visar hur du skickar ett enkelt e-postmeddelande med SMTP.

SMTP-installation och konfiguration

Öppna .env filen från Laravel-projektets rotmapp och konfigurera konfigurationen enligt ditt Gmail-konto. Du måste aktiveraMindre säker app”I ditt Gmail-konto för att skicka ett e-postmeddelande med Gmail SMTP-servern.

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

***Notera:

Du kan få SMTP-autentiseringsfelet när du skickar e-postmeddelanden med SMTP Gmail-kontoservern. Öppna StreamBuffer.php fil från följande plats.

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

Hitta och ersätt rad 259 med följande rad för att autentisera Gmail SMTP-servern.

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

Skicka e-post med SMTP

Utför följande steg för att skicka e-post med hjälp av kontaktformuläret genom att skapa en kontroller, vy och e-postklass.

Steg:

Kör följande kommando från terminalen för att skapa EmailController för att visa kontaktformuläret och skicka ett e-postmeddelande med Laravel mail class.

$ php hantverkare: controller EmailController

Kör följande kommando för att skapa en e-postklass med namnet sendingEmail. Detta skapar klassen under App \ Mail mapp.

$ php artisan make: mail sendingEmail

Skapa en vyfil med namnet e-postmeddelande.blad.php med följande kod för att visa kontaktformuläret.




Kontakta oss formulär












Kontakta oss




@if (räkna ($ fel)> 0)



    @foreach ($ -fel-> allt () som $ -fel)
  • $ error

  • @endforeach


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


$ meddelande

@endif



csrf_field ()


















Öppna EmailController och ändra koden med följande kod. De Post fasad och sendingEmail e-postklasser importeras i början av filen. Här, den index() metoden laddar visningsfilen i webbläsaren för att visa kontaktformuläret. Efter att ha skickat in formuläret, skicka() metod kommer att kallas. Denna metod validerar formuläret med valideringsreglerna. De $ data array används för att skicka värdena för namn och meddelande fält in i sendingEmail klass. Därefter skickas e-postmeddelandet med Post Fasad. Du måste ange en giltig e-postadress för mottagaren i till() funktion innan du kör koden. Om e-postmeddelandet skickas kommer ett framgångsmeddelande att skrivas ut.

namnrymd App \ Http \ Controllers;
använd Illuminate \ Http \ Request;
använd Illuminate \ Support \ Facades \ Mail;
använd App \ Mail \ sendingEmail;
klass EmailController utökar Controller

funktionsindex ()

returvy ('emailsend');

funktion skicka (Begär $ begäran)

$ detta-> validera ($ begäran, [
'name' => 'krävs',
'email' => 'krävs | e-post',
'meddelande' => 'krävs'
]);
$ data = array (
'namn' => $ begäran-> namn,
'meddelande' => $ begäran-> meddelande
);
Mail :: till ('Mottagarens e-postadress') -> skicka (ny sendingEmail ($ data));
återvänd tillbaka () -> med ('success', 'Tack för att du kontaktade oss!');

Öppna sendingEmail klass och ändra koden med följande kod. E-postämnet definieras i bygga() metod och e-postmall vy används för att formatera e-postinnehållet, skapat i nästa steg. Värdena överförda från EmailController lagras i $ e-post objekt och skickas i e-postmall se.

namnrymd App \ Mail;
använd Illuminate \ Bus \ Queueable;
använd Illuminate \ Contracts \ Queue \ ShouldQueue;
använd Illuminate \ Mail \ Mailable;
använd Illuminate \ Queue \ SerializesModels;
class sendingEmail utökar Mailable

använd Queueable, SerializesModels;
/ **
* Skapa en ny meddelandeinstans.
*
* @return ogiltig
* /
offentliga $ e-postmeddelanden;
offentlig funktion __construct ($ e-post)

$ this-> emails = $ emails;

/ **
* Skapa meddelandet.s
*
* @ returnera $ detta
* /
public function build ()

returnera $ this-> subject ('Meddelande från besökaren')
-> visa ('email_template')
-> med ('emails', $ this-> emails);

Skapa den mallvisningsfil som heter e-postmall.blad.php med följande kod för att skicka det formaterade e-postmeddelandet till avsändaren. Värdena överförda från sendingEmail klass används i den här mallen.

Hej,
jag är $ emails ['name']


Min fråga handlar om följande ämne:


$ emails ['message'].


Det kommer att vara till hjälp om du svarar snart.Tack.

Öppna nu webb.php fil och lägg till följande ruttkod för att öppna kontaktformuläret och skicka e-postmeddelandet.

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

Kör följande URL från webbläsaren för att ladda kontaktformuläret.

http: // localhost / laravelpro / public / contact

Fyll i formuläret och klicka på Skicka meddelande för att skicka innehållet i formuläret till skicka() metod för EmailController klass.

Om e-postmeddelandet skickas framgångsrikt får du framgångsmeddelandet, som visas i följande bild.

Öppna nu det Gmail-konto som du använde för att skicka ett e-postmeddelande i skicka() metod för EmailController klass. Om du öppnar e-postmeddelandet får du följande e-postinnehåll genererat med hjälp av en e-postmall visa fil.

Videohandledning

Slutsats

Det finns flera sätt att skicka ett e-postmeddelande i Laravel-ramverket. Det enklaste och enklaste sättet att skicka e-post i Laravel visas i denna handledning. Om du har ett Gmail-konto kan du enkelt skicka ett e-postmeddelande genom att följa stegen som visas i denna handledning. Gmail SMTP-servern används här för att skicka ett e-postmeddelande och uppgiften för att skicka e-post testas genom att köra koden från den lokala servern. Den här handledningen visar endast HTML-formaterade e-postuppgifter. Du kan också utföra andra uppgifter, som filbilaga, avsändarnamn, etc., genom att använda andra metoder för Post klass.

De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...