✅ 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

324

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