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

Wysyłanie wiadomości e-mail przy użyciu serwera SMTP Gmaila i biblioteki Swift Mailer

92

Czy chcesz wysyłać e-maile za pomocą serwera SMTP Gmaila? Gdy używasz serwera SMTP do obsługi wiadomości e-mail, istnieje duża szansa, że ​​Twoje wiadomości trafią do skrzynki odbiorczej użytkownika, a nie do spamu. Serwer SMTP zapobiega oznaczaniu Twoich e-maili jako spamu. W tym artykule dowiemy się, jak wysyłać wiadomości e-mail za pomocą serwera SMTP Gmaila i biblioteki Swift Mailer.

Jako właściciel witryny zawsze chcesz, aby Twój e-mail trafiał bezpośrednio do skrzynki odbiorczej użytkownika, a nie do spamu lub śmieci. Zwiększa to prawdopodobieństwo, że użytkownik przeczyta Twoją wiadomość e-mail i podejmie żądaną akcję.

Dlaczego warto korzystać z serwera SMTP?

W przypadku witryny internetowej normalnym jest formularz, który wysyła wiadomość e-mail do użytkowników lub administratorów. Może to być Twój biuletyn, formularz kontaktowy lub proces rejestracji, w którym musisz wysłać wiadomość e-mail jako potwierdzenie.

PHP udostępnia mail()funkcję wysyłania e-maili. Jeśli jednak Twój serwer nie konfiguruje poprawnie ustawień poczty, ta metoda nie działa. Inną możliwością jest to, że wysyłanie wiadomości e-mail za pomocą mail()metody może skończyć się spamem.

Aby przezwyciężyć te dwie sytuacje, do wysyłania wiadomości e-mail należy używać serwera SMTP.

Korzystając z biblioteki Swift Mailer, użytkownik może korzystać z dowolnego serwera SMTP, takiego jak Gmail, Sendgrid, Mandrill lub własnego serwera SMTP udostępnianego przez hosting do wysyłania wiadomości e-mail. W tym samouczku wybieram serwer SMTP Gmaila.

Powiedziawszy to, przyjrzyjmy się, jak korzystać z biblioteki Swift Mailer do wysyłania wiadomości e-mail.

Szybka instalacja Mailera

Aby korzystać z biblioteki Swift Mailer, musisz mieć na swoim serwerze PHP w wersji 7.2 lub nowszej. Jeśli używasz starszej wersji, zaktualizuj ją do najnowszej wersji PHP. Większość dostawców hostingu, takich jak Bluehost, aktualizuje wersję PHP na żądanie. Nie musisz inwestować czasu, aby zaktualizować wersję.

Idąc dalej, polecam użyć Composera do zainstalowania biblioteki Swift Mailer. Otwórz terminal w katalogu głównym projektu i uruchom polecenie:

composer require swiftmailer/swiftmailer

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

Wysyłanie wiadomości e-mail przy użyciu serwera SMTP Gmaila i biblioteki Swift Mailer

Wysyłanie wiadomości e-mail przy użyciu serwera SMTP Gmaila i biblioteki Swift Mailer

Na tym etapie jesteś gotowy z biblioteką Swift Mailer, a także zmieniłeś ustawienia konta Gmail. Teraz możesz iść dalej.

Załóżmy, że masz plik, w sendmail.phpktórym musisz napisać kod, który wysyła e-maile. Napisz poniższy kod w swoim pliku PHP.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

W powyższym kodzie przekazałem poniższe wartości dla ustawień serwera SMTP Gmaila.

  • Adres serwera SMTP Google: smtp.googlemail.com
  • Port SMTP Gmaila: 465
  • Szyfrowanie: ssl

Oprócz tych wartości musisz zmienić inne symbole zastępcze, takie jak YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD itp.

Po zastąpieniu wszystkich wartości uruchom ten plik w przeglądarce. Powinieneś dostać e-mail w skrzynce odbiorczej, a nie w spamie.

Wyślij pojedynczy lub wiele załączników w wiadomości e-mail

Czasami może być konieczne przesłanie załączników w wiadomości e-mail. Za pomocą Swift Mailer możesz wysyłać jeden lub wiele załączników w następujący sposób:

$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png')); //absolute path for your attachment
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'));

Wystarczy użyć attachmetody i podać bezwzględną ścieżkę pliku, który chcesz wysłać jako załącznik. Tutaj zakładam, że musisz wysłać ‘sample.png’ i ‘sample-ebook.pdf’ jako załączniki.

Więc nasz ostateczny kod wygląda następująco.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png'))
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'))
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Wszystko sprowadza się do wysyłania wiadomości e-mail za pośrednictwem biblioteki Swift Mailer. Możesz również użyć Symfony Swift Mailer do wysyłania wiadomości przez kilka serwerów SMTP, takich jak Mailgun, Mandrill, itp. Chciałbym usłyszeć Twoje przemyślenia i sugestie w sekcji komentarzy 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