✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Skicka e-post med Gmail SMTP-server från PHP-skript

65

E-post spelar en viktig roll på webbplatsen. Varje webbplats behöver vanligtvis skicka e-post till användare. Dessa e-postmeddelanden kan skickas från kontaktsidan, nyhetsbrevet, registreringsformuläret etc.

PHP tillhandahåller en mail()funktion som används för att skicka ett e-postmeddelande. Men det finns begränsningar när du använder mail()metoden. Du kan inte skicka e-post från en lokal utvecklingsserver. En annan nackdel är att det finns stor risk för att din e-post hamnar i skräppost.

I de flesta fall mail()skickar metoden till och med inte ett mejl. Detta kan bero på fel serverkonfiguration eller något annat.

För att komma ur dessa problem eller begränsningar kan man använda SMTP-servern för att skicka e-postmeddelanden.

I den här artikeln studerar vi hur man använder PHPMailer och Gmail SMTP-server för att skicka e-post.

Installation

Du måste först installera PHPMailer- biblioteket i ditt projekt. Rekommenderat sätt att installera ett bibliotek är via Composer.

Öppna kommandotolken i din projektkatalog och kör kommandot nedan.

composer require phpmailer/phpmailer

Eftersom vi använder Gmail SMTP måste du ändra vissa inställningar på ditt Google-konto. Logga in på ditt Google-konto och klicka på Mitt konto. När du är på sidan Mitt 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Å.

Skicka e-post med Gmail SMTP-server från PHP-skript

Efter detta måste vi skriva en kod som skickar ett e-postmeddelande med hjälp av PHPMailer-biblioteket och Gmail SMTP-servern.

PHP-skript för att skicka e-post med Gmail SMTP-server

Öppna din PHP-fil där du behöver skriva en kod för e-post. Jag antar till exempel att du har en sendemail.phpfil i rotkatalogen.

sendemail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

I ovanstående kod har jag inkluderat miljön i PHPMailer-biblioteket i PHP-filen.

För att skicka e-postmeddelanden med PHPMailer måste användaren sedan skicka Gmail SMTP-serveradress, SMTP-port för Gmail och SMTP-autentisering (vilket inte är ditt användarnamn och lösenord för ett Google-konto).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

Det är allt! Du är klar med konfigurationen. Nu är det bra att fortsätta med att skicka ett e-postmeddelande till en användare.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Ersätt platshållarna med faktiska värden. Kör den här filen i en webbläsare och din e-post ska skickas till mottagarens e-postadress.

Skicka bilagor i ett e-postmeddelande

Med hjälp av PHPMailer-biblioteket kan man skicka enstaka eller flera bilagor i ett e-postmeddelande. Allt du behöver göra är att skicka en katalogsökväg till dina bilagor till metoden addAttachmentenligt följande.

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Vår slutliga kod är som följer.

sendemail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

Jag hoppas att du förstår hur du skickar e-post med Gmail SMTP-server från ett PHP-skript. Dela dina tankar och förslag i en kommentar nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer