✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Wyślij e-mail za pomocą serwera SMTP Gmaila ze skryptu PHP

534

E-mail odgrywa ważną rolę na stronie internetowej. Każda strona internetowa zazwyczaj musi wysyłać e-maile do użytkowników. Te e-maile mogą być wysyłane ze strony kontaktowej, biuletynu, formularza rejestracyjnego itp.

PHP udostępnia mail()funkcję, która służy do wysyłania wiadomości e-mail. Ale istnieją ograniczenia podczas korzystania z mail()metody. Nie możesz wysyłać wiadomości e-mail z lokalnego serwera programistycznego. Inną wadą jest to, że istnieje duże prawdopodobieństwo, że Twój e-mail stanie się spamem.

W większości przypadków mail()metoda nawet nie wysyła e-maila. Może to być spowodowane nieprawidłową konfiguracją serwera lub czymś innym.

Aby wyjść z tych problemów lub ograniczeń, można użyć serwera SMTP do wysyłania e-maili.

W tym artykule dowiemy się, jak używać PHPMailera i serwera SMTP Gmail do wysyłania e-maili.

Instalacja

Najpierw musisz zainstalować bibliotekę PHPMailer w swoim projekcie. Zalecanym sposobem instalacji biblioteki jest użycie Composera.

Otwórz wiersz polecenia w katalogu głównym projektu i uruchom poniższe polecenie.

composer require phpmailer/phpmailer

Ponieważ używamy Gmail SMTP, musisz zmienić niektóre ustawienia na swoim koncie Google. Zaloguj się na swoje konto Google i kliknij Moje konto. Gdy znajdziesz się na stronie Moje konto, kliknij Bezpieczeństwo. Przewiń w dół, a znajdziesz ustawienia „Mniej bezpieczny dostęp do aplikacji". Ustaw go na ON.

Wyślij e-mail za pomocą serwera SMTP Gmaila ze skryptu PHP

Następnie musimy napisać kod, który wyśle ​​wiadomość e-mail za pomocą biblioteki PHPMailer i serwera SMTP Gmaila.

Skrypt PHP do wysyłania wiadomości e-mail za pomocą serwera SMTP Gmaila

Otwórz plik PHP, w którym musisz napisać kod do wiadomości e-mail. Na przykład zakładam, że masz sendemail.phpplik w katalogu głównym.

sendemail.php

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

W powyższym kodzie umieściłem środowisko biblioteki PHPMailer w pliku PHP.

Następnie, aby wysyłać e-maile za pomocą PHPMailera, użytkownik musi przekazać adres serwera SMTP Gmaila, port SMTP dla Gmaila i uwierzytelnianie SMTP (które jest niczym innym jak nazwą użytkownika i hasłem do konta Google).

$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

Otóż ​​to! Skończyłeś z konfiguracją. Teraz możesz już wysłać wiadomość e-mail do użytkownika.

$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';

Zastąp symbole zastępcze rzeczywistymi wartościami. Uruchom ten plik w przeglądarce, a wiadomość e-mail powinna zostać wysłana na adres e-mail odbiorcy.

Wysyłanie załączników w wiadomości e-mail

Korzystając z biblioteki PHPMailer można wysłać jeden lub wiele załączników w wiadomości e-mail. Wszystko, co musisz zrobić, to przekazać ścieżkę katalogu swoich załączników do metody addAttachmentw następujący sposób.

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

Nasz ostateczny kod jest następujący.

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;
}
?>

Mam nadzieję, że rozumiesz, jak wysyłać wiadomości e-mail za pomocą serwera SMTP Gmaila ze skryptu PHP. Podziel się swoimi przemyśleniami i sugestiami w komentarzu poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów