Skicka e-post via Gmail SMTP-server i Laravel
Vill du använda Gmail SMTP-servern för att skicka e-post i Laravel? Ibland skickar din server inte e-post på grund av dess begränsningar eller felkonfigurationer. I sådana scenarier kan du använda SMTP-servern för att skicka e-post. I den här artikeln diskuterar vi hur du skickar e-post med Gmail SMTP-servern i Laravel.
Med SMTP-servern hamnar dina e-postmeddelanden inte i skräppostmappen. I allmänhet kommer det att behandlas som ett äkta e-postmeddelande och går in i användarens inkorg.
En ytterligare fördel med att använda SMTP-servern är att du också kan skicka e-post från din lokala server. Det kommer att vara till hjälp att testa e-postfunktionaliteten på den lokala servern själv.
Installation av Gmail SMTP-server i Laravel
Laravel använder config/mail.php
filen för att lagra informationen relaterad till e-postleverantörer. Den här filen innehåller inställningar som MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, etc. Användaren ska tillhandahålla denna information som kommer att användas av Laravel och skicka dina e-postmeddelanden.
För att lägga till denna information behöver du inte redigera config / mail.php. Istället bör du lagra dessa detaljer i .env
filen.
Öppna din .env
fil som finns i din rotkatalog och du hittar nedan kod relaterad till e-postinställningar.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Redigera ovanstående detaljer enligt följande.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Här ställde jag in drivrutinen som smtp, värd för Gmail som smtp.googlemail.com, SMTP-port för Gmail som 465 och krypteringsmetod till ssl. Se till att ersätta platshållarna GMAIL_USERNAME, GMAIL_PASSWORD med ditt faktiska Gmail-användarnamn och lösenord.
För att kunna använda Gmail SMTP-servern måste du ändra vissa inställningar på ditt Google-konto. Logga in på ditt Google-konto och klicka på ‘Konto’. När du är på sidan ‘Konto’ klickar du på ‘Säkerhet’. Rulla ner till botten så hittar du inställningarna för ‘Mindre säker appåtkomst’. Ställ den på PÅ.
Kod för att skicka e-post i Laravel
I det här skedet är du klar med alla grundläggande inställningar. Nu måste du skriva en Laravel-kod som skickar ett e-postmeddelande.
För den här handledningen ska jag använda en "Mail" -klass för att skriva kod. Användaren kan också skriva koden med Laravel Mailable. Det kommer inte att göra någon skillnad. I båda fallen använder Laravel Gmail SMTP-servern i bakgrunden.
När du använder klassen "Mail" kommer din kod att vara ungefär som skrivet nedan.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
I koden ovan använder jag vyn "emails.mail". Det betyder att du måste skapa en mapp och fil som resources->views->emails->mail.blade.php
.
Din mail.blade.php
kommer att innehålla kod enligt följande.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
Det är allt! I bakgrunden använder Laravel automatiskt Gmail SMTP-servern och skickar dina e-postmeddelanden.
relaterade artiklar
- Laravel e-posttest: Mailtrap kontra andra alternativ
- Hur man loggar frågan i Laravel
- Hur man installerar och använder CKEditor i Laravel