E-posti saatmine Gmaili SMTP-serveri ja Swift Maileri teegi abil
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
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.php
kuhu 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 attach
meetodit 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.