...
✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Lähetä sähköpostia Gmail SMTP -palvelimen ja Swift Mailer -kirjaston avulla

17

Haluatko lähettää sähköpostisi Gmail SMTP -palvelimen avulla? Kun käytät SMTP-palvelinta sähköposteihisi, on todennäköistä, että sähköpostisi menevät käyttäjän postilaatikkoon eikä roskapostiin. SMTP-palvelin estää sähköpostisi merkitsemästä roskapostiksi. Tässä artikkelissa tutkitaan, miten lähetetään sähköpostia Gmail SMTP -palvelimen ja Swift Mailer -kirjaston avulla.

Sivuston omistajana haluat aina, että sähköpostisi menee suoraan käyttäjän postilaatikkoon eikä roskapostiin tai roskapostiin. Se lisää todennäköisyyttä, että käyttäjä lukee sähköpostisi ja suorittaa haluamasi toimet.

Miksi sinun on käytettävä SMTP-palvelinta?

Verkkosivustolle on normaalia, että sinulla on lomake, joka lähettää sähköpostin käyttäjille tai järjestelmänvalvojille. Se voi olla uutiskirje, yhteydenottolomake tai rekisteröintiprosessi, johon sinun on lähetettävä sähköposti kuittauksena.

PHP tarjoaa mail()toiminnon sähköpostien lähettämiseen. Jos palvelimesi ei kuitenkaan määritä postiasetuksia oikein, tämä menetelmä ei toimi. Toinen mahdollisuus on, kun lähetät sähköposteja mail()menetelmällä, se voi päätyä roskapostiksi.

Voit voittaa nämä 2 tilannetta käyttämällä SMTP-palvelinta sähköpostiviestien lähettämiseen.

Käyttämällä Swift Mailer kirjaston käyttäjä voi käyttää mitä tahansa SMTP-palvelin, kuten Gmail, Sendgrid, Mandrilli tai oma isäntä säädetty SMTP lähettää sähköposteja. Tässä opetusohjelmassa valitsen Gmailin SMTP-palvelimen.

Tämän sanottuaan katsotaanpa, kuinka Swift Mailer -kirjastoa käytetään sähköpostiviestien lähettämiseen.

Nopea Mailer-asennus

Jotta voit käyttää Swift Mailer -kirjastoa, palvelimellasi on oltava PHP-versio 7.2 tai uudempi. Jos käytät vanhempaa versiota, päivitä se uusimpaan PHP-versioon. Suurin osa palveluntarjoajista, kuten Bluehost, päivittää PHP-version pyynnöstä. Sinun ei tarvitse käyttää aikaa päivittääksesi version.

Jatkossa suosittelen, että Swift Mailer -kirjasto asennetaan Composerilla. Avaa pääte projektin juurihakemistossa ja suorita komento:

composer require swiftmailer/swiftmailer

Koska aiomme käyttää Gmailin SMTP: tä, sinun on muutettava joitain Google-tilisi asetuksia. Kirjaudu Google-tiliisi ja napsauta Tili. Kun olet Google-tilisivulla, napsauta Suojaus. Vieritä alaspäin ja löydät ‘Vähemmän turvallisen sovelluksen käyttö’ -asetukset. Aseta se asentoon ON.

Lähetä sähköpostia Gmail SMTP -palvelimen ja Swift Mailer -kirjaston avulla

Lähetä sähköpostia Gmail SMTP -palvelimen ja Swift Mailer -kirjaston avulla

Tässä vaiheessa olet valmis Swift Mailer -kirjastoon ja muutit myös Gmail-tilin asetuksia. Nyt sinulla on hyvä mennä eteenpäin.

Oletetaan, että sinulla on tiedosto, sendmail.phpjohon sinun on kirjoitettava koodi, joka lähettää sähköposteja. Kirjoita alla oleva koodi PHP-tiedostoon.

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();
}

Yllä olevassa koodissa olen välittänyt alla olevat arvot Gmailin SMTP-palvelinasetuksille.

  • Google SMTP -palvelimen osoite: smtp.googlemail.com
  • Gmailin SMTP-portti: 465
  • Salaus: ssl

Näiden arvojen lisäksi sinun on vaihdettava muita paikkamerkkejä, kuten YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD jne.

Kun olet korvannut kaikki arvot, suorita tämä tiedosto selaimessa. Sinun pitäisi saada sähköposti postilaatikkoon, ei roskapostiin.

Lähetä yksittäisiä tai useita liitteitä sähköpostitse

Joskus sinun on ehkä lähetettävä liitteet sähköpostitse. Swift Mailer -sovelluksen avulla voit lähettää yksittäisiä tai useita liitteitä seuraavasti:

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

Sinun tarvitsee vain käyttää attachmenetelmää ja välittää liitetiedostona lähetettävän tiedoston absoluuttinen polku. Tässä oletan, että sinun on lähetettävä liitteet "sample.png" ja "sample-ebook.pdf".

Joten lopullinen koodimme on seuraava.

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();
}

Kyse on sähköpostin lähettämisestä Swift Mailer -kirjaston kautta. Voit myös käyttää Symfony Swift Maileria lähettämään viestejä muutaman SMTP-palvelimen kautta, kuten Mailgun, Mandrill jne. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja