✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

E-posti saatmine Gmaili SMTP-serveri ja Swift Maileri teegi abil

18

Kas soovite saata oma meilid Gmaili SMTP-serveri abil? Kui kasutate oma meilide jaoks SMTP-serverit, on suur tõenäosus, et teie meilid lähevad kasutaja postkasti, mitte rämpsposti. SMTP-server takistab teie e-kirjade rämpspostiks märkimist. Selles artiklis uurime, kuidas saata e-kirju Gmaili SMTP-serveri ja Swift Maileri teegi abil.

Saidi omanikuna soovite alati, et teie e-post läheks otse kasutaja postkasti, mitte rämpsposti ega rämpsposti. See suurendab tõenäosust, et kasutaja loeb teie e-posti ja teeb soovitud toiminguid.

Miks on vaja kasutada SMTP-serverit?

Veebisaidi jaoks on normaalne vorm, mis saadab kasutajatele või administraatoritele meili. See võib olla teie uudiskiri, kontaktivorm või registreerimisprotsess, kus peate kinnitamiseks saatma e-kirja.

PHP pakub mail()funktsiooni e-kirjade saatmiseks. Kui teie server ei konfigureeri meilisätteid õigesti, siis see meetod ei toimi. Teine võimalus on see, et kui saadate e-kirju mail()meetodi abil, võib see lõppeda rämpspostiga.

Nende kahe olukorra ületamiseks peaksite oma meilide saatmiseks kasutama SMTP-serverit.

Swift Maileri teeki kasutades saab kasutaja e-kirjade saatmiseks kasutada mis tahes SMTP-servereid, nagu Gmail, Sendgrid, Mandrill või teie enda hostitud SMTP-server. Selles õpetuses valin Gmaili SMTP-serveri.

Seda öeldes vaatame, kuidas kasutada Swift Maileri teeki meilide saatmiseks.

Kiire Maileri installimine

Swift Maileri teegi kasutamiseks peaks teie serveris olema PHP versioon 7.2 või uuem. Kui kasutate vanemat versiooni, siis värskendage see uusimale PHP versioonile. Enamik hostimisteenuse pakkujaid, näiteks Bluehost, täiendavad soovi korral PHP-versiooni. Versiooni värskendamiseks pole vaja aega investeerida.

Edaspidi soovitan Swift Maileri teegi installimiseks kasutada Composerit. Avage terminal oma projekti juurkataloogis ja käivitage käsk:

composer require swiftmailer/swiftmailer

Kuna hakkame kasutama Gmaili SMTP-d, peate muutma oma Google’i konto mõningaid seadeid. Logige sisse oma Google’i kontole ja klõpsake nuppu Konto. Kui olete Google’i konto lehel, klõpsake nuppu Turvalisus. Kerige allapoole ja leiate seaded „Vähem turvalise rakenduse juurdepääs". Lülitage see olekusse SEES.

E-posti saatmine Gmaili SMTP-serveri ja Swift Maileri teegi abil

E-posti saatmine Gmaili SMTP-serveri ja Swift Maileri teegi abil

Selles etapis olete Swift Maileri teegiga valmis ja muutsite ka Gmaili konto seadeid. Nüüd on teil hea edasi minna.

Oletame, et teil on fail, sendmail.phpkuhu peate kirjutama koodi, mis saadab meile. Sisestage allpool olev kood oma PHP-faili.

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

Ülaltoodud koodis olen edastanud Gmaili SMTP-serveri seadete jaoks järgmised väärtused.

  • Google’i SMTP-serveri aadress: smtp.googlemail.com
  • Gmaili SMTP-port: 465
  • Krüptimine: ssl

Peale nende väärtuste peate muutma ka muid kohatäiteid, näiteks YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD jne.

Pärast kõigi väärtuste asendamist käivitage see fail brauseris. Peaksite saama e-kirja postkasti, mitte rämpsposti.

Saada üks või mitu manust e-postiga

Mõnikord peate võib-olla manused saatma meilis. Swift Maileri abil saate ühe või mitu manust saata järgmiselt:

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

Kõik, mida peate tegema, on kasutada attachmeetodit ja edastada manusena saadetava faili absoluutne tee. Eeldan, et siin peate manusena saatma ‘sample.png’ ja ‘sample-ebook.pdf’.

Nii et meie lõplik kood on järgmine.

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

See kõik käib e-kirjade saatmise kohta Swift Maileri teegi kaudu. Symfony Swift Mailerit saate kasutada ka sõnumite saatmiseks mõne SMTP-serveri kaudu, nagu Mailgun, Mandrill jne. Tahaksin teie mõtteid ja ettepanekuid kuulda allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem