Principy fungování pošty PHP a smtp. Odesílání e-mailů (SMTP vs
Odesílání pošty přes SMTP z místního serveru vám umožňuje otestovat odesílání zpráv z webu umístěného na místním počítači nebo jednodušeji z místního serveru. K tomu můžete použít jakoukoli poštovní službu Yandex, Google nebo mail.ru.
Za prvé, SMTP (Simple Mail Transfer Protocol) je široce používaný síťový protokol, určený k přenosu e-mail v sítích TCP/IP. A všechny populární e-mailové služby mají takové protokoly.
S příchodem lokálních serverů již nebylo nutné vybírat poskytovatele hostingu pro kontrolu výkonu jednotlivých skriptů nebo CMS systémů, tím méně za to platit. Je mnohem snazší vše otestovat na počítači a pak můžete všem ukázat, co jste „udělali“.
Mnoho z těchto serverů je již vestavěno software a potřebnou funkcionalitu pro práci s poštou, stačí ji jen správně nakonfigurovat.
Pro kontrolu funkčnosti takové pošty je nutné minimum:
- Openserver můžete použít jako lokální server.
- A jednoduchý skript, jehož šablonu najdete hned níže.
- Můžete použít jakýkoli poštovní server.
Odesílání pošty php přes nastavení skriptu SMTP
Je třeba upravit jednoduchou šablonu skriptu, kterou lze zkopírovat níže nebo stáhnout ze stovek podobných stránek.
Nejprve musíte změnit některé hodnoty v šabloně skriptu.
na
— změnit na poštovní adresu, na kterou bude zpráva odeslána.
podrobit
— předmět dopisu
zpráva
— samotná zpráva nebo tělo dopisu.
Příklad mého skriptu:
Funkcionalitu můžete samozřejmě trochu rozšířit a nechat skript zobrazit zprávu o odeslání pošty. I když ve skutečnosti je to server SMTP, kdo odesílá, a skript pouze generuje zprávu.
Můžete například napsat toto:
Všechny nahrazené hodnoty musí být v uvozovkách, jinak skript vyvolá chybu. Poté můžete skript uložit do složky místního serveru.
Například: domains/send/index.php a začněte nastavovat odesílání pošty přes SMTP opensrerver.
Pošta dorazí na libovolnou adresu, která bude zadaná ve skriptu místo hodnoty 'na' , ale tato pošta bude zpracována a odeslána přesně tím SMTP, který bude uveden v nastavení openserveru.
- Spuštění serveru
- Otevřete modul openserver s nastavením v nabídce „mail“.
- Vyplníme všechna pole, jak je znázorněno na obrázku, přičemž nahradíme uživatelské jméno, e-mail odesílatele a heslo ze skutečné poštovní schránky na Yandexu.
Nastavení uložíme a po restartu serveru můžete přistupovat k samotnému skriptu. Ze složky „My Sites“ otevřete složku „send“, ve které se nachází dříve uložený skript index.php.
Jakmile dojde k přístupu k tomuto skriptu, v novém okně prohlížeče se zobrazí informace o dokončení skriptu.
Poté byste měli zkontrolovat svůj poštovní schránka, jehož adresa byla uvedena ve scénáři, zda dopis dorazil.
Pokud tam není, znamená to, že něco není správně nakonfigurováno nebo dopis skončil ve složce se spamem.
Všechna ostatní nastavení vypadají podobně, ale pro jistotu další informace neublíží.
Chcete-li nastavit odesílání pošty přes SMTP mail ru, musíte jednoduše nahradit parametry Yandex parametry mail ru.
A aby se pokaždé nepřestavoval lokální server, je nejlepší nakonfigurovat různé profily openserveru. Jak to udělat, je uvedeno ve video tutoriálu.
V tomto případě bude stačit jednoduše načíst profil a všechna nastavení, která byla pro tento profil zadána, budou dostupná po restartu serveru. Je to velmi pohodlná věc a funguje velmi jednoduše.
Pro každý profil (je úplně jedno, jak se bude jmenovat) je nutné provést jeho vlastní nastavení, pokud ovšem neplánujete používat skripty, cms systémy a aplikace s jinými parametry.
Pokud ne, můžete si vystačit s výchozím nastavením.
Pokud jde o SMTP mail ru, zde je vše stejné.
Data Yandex se změní na data mail ru
Odesílání pošty přes smtp google
Nastavení odesílání pošty přes Google SMTP vyžaduje trochu úsilí.
Za prvé, vytvoření profilu v Google je obtížnější než v jiných systémech Yandex a mail ru
Za druhé, systém dopis jednoduše nepropustí, i když zadáte své přihlašovací údaje. Nejprve pošle dopis obsahující všechny potřebné informace o dalších pokynech.
Jinak Pro Google je nakonfigurován úplně stejným způsobem. Mění se pouze všechny údaje.
Pro konfiguraci odesílání pošty přes jiný SMTP budou všechna data přibližně stejná.
Pokud vám vše vyšlo a dopisy dorazily k určenému adresátovi, vše proběhlo správně. Bylo by skvělé, kdybyste se o své zkušenosti podělili v komentářích.
Mail PHP
Tato funkce je standardně implementována jako odesílání e-mailu. Tato funkce nevyžaduje server třetí strany k přeposílání e-mailů. Pro kontrolu správnosti této funkce stačí vytvořit soubor test.php ve složce s webem a umístit tam následující kód:
Kde místo toho "E-MAILPŘÍJEMCE" Zadejte email, na který má být dopis zaslán.
Místo tento soubor v kořenovém adresáři vašeho webu.
Dále do adresního řádku zadejte www.YourDomain/test.php. Pokud je na zadanou e-mailovou adresu přijat dopis, pak váš hosting funguje správně s funkcí odesílání dopisů " Mail PHP". Je možné, že dopis skončil ve spamu, proto je potřeba jej také zkontrolovat.
Pokud dopis dorazil v nesrozumitelném kódování, změňte řádek: "Kontrola odesílání pošty" na "Kontrola odesílání pošty", "Content-type:text/html;charset=utf-8".
A opakujte odeslání dopisu přes adresní řádek vašeho prohlížeče.
Pokud se po výše uvedených manipulacích testovací dopis nedostane ke konečnému příjemci, musíte kontaktovat technickou podporu vašeho hostingu.
Mezi nedostatky tato metoda Stojí za zmínku, že práce není trvalá tato metoda. Může dojít k přerušení odesílání e-mailů na straně hostitele.
Hlavní nevýhodou této metody je, že všechny dopisy zaslané na e-maily klientů nebudou poštovními službami (gmail, mail.ru, yandex.ru) rozpoznány, protože byly odeslány přímo z vašeho webu.
Poštovní služba Gmail zobrazuje tyto dopisy s otazníkem a podpisem: „Systém Gmailu nedokázal potvrdit, že tento dopis byl odeslán z domény VašeDoména. Může se jednat o spam.“
Aby se předešlo této situaci .
SMTP (Simple Mail Transfer Protocol)
SMTP - protokol pro přenos pošty. Celkově pro nastavení přenosu pošty pomocí tohoto protokolu potřebujete samotný server SMTP. Nejběžnější možností pro použití firemní (doménové) pošty yandex.ru jako serveru SMTP je https://pdd.yandex.ru/.
Především je to nutné účet (mail) yandex, na základě kterého budou vytvořeny emaily pro Vaši doménu: “objednávka@VašeDoména” “info@VašeDoména”... Hlavní účet nebude nikde vidět a slouží pouze k vytváření doménových emailů na jeho základě v budoucnu.
Po autorizaci ve vašem osobním účtu Yandex se vytvoří doménová pošta na odkazu https://pdd.yandex.ru/. Toto je e-mail domény, který uživatelé uvidí v poli Odesílatel.
Při odesílání e-mailů přes SMTP je pole „Odesílatel“ povinné. Použití SMTP k odesílání dopisů, kombinace " Doména" - "E-mail", čímž jsou dopisy rozpoznány poštovními službami.
Mezi nevýhody této metody stojí za zmínku nemožnost „načíst“ doménový poštovní portrét, protože samotné poštovní služby tuto funkci zatím neposkytují.
Nastavení pro odesílání pošty přes SMTP
Existují případy, kdy tvůrci webových stránek čelí problému s e-mailem webové stránky pomocí CMS Joomla. Například při odesílání dopisu přes formulář zpětná vazba Mohou se objevit následující typy chyb: "Nelze vytvořit instanci funkce pošty" nebo "Nepodařilo se zavolat funkci pošty". Je také možné poslat dopis bez chyb, ale ve výsledku stejně nedorazí k adresátovi.
Proč k těmto problémům dochází s poštou? Chcete-li odpovědět na tuto otázku, musíte v ovládacím panelu přejít na následující cestu: „Systém“ - „Obecná nastavení“ - karta „Server“ - sekce „Nastavení pošty“.
CMS Joomla poskytuje tři mechanismy pro odesílání dopisů: PHP Mail, Sendmail a SMTP. Standardně se používá PHP Mail, který často způsobuje problémy, které souvisí především s nastavením používaného hostingu.
Na základě výše uvedeného docházíme k závěru: buď se obrátíme o pomoc na poskytovatele hostingu, nebo použijeme metodu odesílání dopisů Sendmail či SMTP. Zaměřme se na používání SMTP.
Nastavení pro odesílání pošty pomocí SMTP
SMTP (Simple Mail Transfer Protocol) je síťový protokol používaný k přenosu e-mailů. Chcete-li používat SMTP, musíte správně nakonfigurovat nastavení konkrétního poštovního serveru, který bude použit.
vidět nastavení SMTP, musíte vybrat „SMTP“ v „Metodě odesílání“. Podívejme se na každé nastavení oblíbených poštovních serverů: Yandex, Mail, Gmail, Rambler a Yahoo.
Nastavení SMTP pro Yandex
- E-mail webových stránek: poštovní schránka na yandex.ru, například: [e-mail chráněný]
- Zabezpečení SMTP: SSL
- Port serveru SMTP: 465
- Uživatelské jméno SMTP: přihlášení k poštovní schránce na yandex.ru, například: khasanov (bez @yandex.ru)
- Server SMTP: smtp.yandex.ru
Nastavení SMTP pro poštu
- E-mail webových stránek: poštovní schránka na mail.ru, například: [e-mail chráněný]
- Odesílatel dopisu: záznam, který příjemce zobrazí v poli „Odesílatel“.
- Zakázat zasílání pošty: zapnuto/vypnuto. funkce hromadné pošty
- Autorizace na SMTP serveru: Ano
- Zabezpečení SMTP: SSL
- Port serveru SMTP: 465
- Uživatelské jméno SMTP: poštovní schránka na mail.ru, například: [e-mail chráněný]
- Heslo SMTP: heslo poštovní schránky
- Server SMTP: smtp.mail.ru
Nastavení SMTP pro Gmail
- E-mail webových stránek: poštovní schránka na adrese gmail.com, například: [e-mail chráněný]
- Odesílatel dopisu: záznam, který příjemce zobrazí v poli „Odesílatel“.
- Zakázat zasílání pošty: zapnuto/vypnuto. funkce hromadné pošty
- Autorizace na SMTP serveru: Ano
- Zabezpečení SMTP: SSL
- Port serveru SMTP: 465
- Uživatelské jméno SMTP: poštovní schránka gmail.com, například: [e-mail chráněný]
- Heslo SMTP: heslo poštovní schránky
- Server SMTP: smtp.gmail.com
Nastavení SMTP pro Rambler
- E-mail webových stránek: poštovní schránka na adrese rambler.ru, například: [e-mail chráněný]
- Odesílatel dopisu: záznam, který příjemce zobrazí v poli „Odesílatel“.
PHPMailer je velmi pohodlná a oblíbená knihovna pro odesílání e-mailových zpráv z vašeho webu. Tento článek popisuje základní nastavení knihovny a poskytuje příklady kódu pro odesílání zpráv. PHPMailer má ve svém sortimentu snad vše, co můžete od práce s poštou chtít: odesílání různými způsoby prostřednictvím různých serverů, včetně přes smtp, možnost šifrovat a podepisovat vaše dopisy, aby neskončily ve spamu a mnoho dalšího.
Knihovnu PHPMailer si můžete stáhnout z https://github.com/PHPMailer/PHPMailer (tlačítko „Klonovat nebo stáhnout“).
Nejprve se podívám na pár jednoduché příklady aby bylo jasné, jak odesílat e-maily pomocí PHPMailer.
Odesílání e-mailů pomocí funkce mail() pomocí PHPMailer
Pokud chcete posílat e-maily z vašeho hostingu prostřednictvím vašeho poštovní server, pak je vše docela jednoduché a bude vypadat nějak takto:
// Zahrnout knihovnu PHPMailer use PHPMailer\PHPMailer\PHPMailer; vyžadovat "PHPMailer/PHPMailer.php"; // Vytvořte dopis $mail = new PHPMailer(); $mail->setFrom(" [e-mail chráněný]", "Ivan Ivanov"); // od koho (e-mail a jméno) $mail->addAddress(" [e-mail chráněný]", "Vasya Petrov"); // komu (e-mail a jméno) $mail->Subject = "Test"; // předmět dopisu // html text písmena $mail->msgHTML("
Ahoj!
Toto je zkušební dopis.
"); // Odeslat if ($mail->send()) ( echo "Zpráva odeslána!"; ) else ( echo "Chyba: " . $mail->ErrorInfo; )Jak vidíte, vše je celkem jednoduché: připojíme knihovnu, vyplníme od koho, komu, předmět a text dopisu a odešleme. Odesílání e-mailů tímto způsobem bude fungovat pouze z e-mailových adres ve vaší doméně (pokud nejsou propojeny s jinými odesílateli).
Odesílání e-mailů přes SMTP pomocí PHPMailer na příkladu Yandex a Google
Můžete také poslat dopis prostřednictvím jiného poštovního odesílatele, například prostřednictvím Yandex. Kód bude vypadat nějak takto:
// Zahrnout knihovnu PHPMailer use PHPMailer\PHPMailer\PHPMailer; použijte PHPMailer\PHPMailer\SMTP; vyžadovat "PHPMailer/PHPMailer.php"; vyžadovat "PHPMailer/SMTP.php"; // Vytvořte dopis $mail = new PHPMailer(); $mail->isSMTP(); // Odeslání přes SMTP $mail->Host = "smtp.yandex.ru"; // adresa serveru SMTP $mail->SMTPAuth = true; // Povolení ověřování SMTP $mail->Username = "login"; // vaše uživatelské jméno (bez domény a @) $mail->Password = "heslo"; // vaše heslo $mail->SMTPSecure = "ssl"; // šifrování ssl $mail->Port = 465; // port připojení $mail->setFrom(" [e-mail chráněný]", "Ivan Ivanov"); // od koho $mail->addAddress(" [e-mail chráněný]", "Vasya Petrov"); // komu $mail->Subject = "Test"; $mail->msgHTML("
Ahoj!
Toto je zkušební dopis.
"); // Odeslat if ($mail->send()) ( echo "Zpráva odeslána!"; ) else ( echo "Chyba: " . $mail->ErrorInfo; )Odesílání e-mailů přes Google má jednu výhradu: musíte google účet povolit přístup k nedůvěryhodným aplikacím. Chcete-li to provést, musíte přejít na svůj účet https://myaccount.google.com, přejděte na zabezpečení, přejděte do části „Nedůvěryhodné aplikace, které mají přístup k vašemu účtu“ a tam se přepněte na „Povoleno“. V době psaní tohoto článku je tato stránka https://myaccount.google.com/u/0/lesssecureapps.
$mail->Host = "smtp.gmail.com"; // adresa serveru SMTP $mail->SMTPAuth = true; // Povolení ověřování SMTP $mail->Username = "login"; // vaše uživatelské jméno $mail->Password = "heslo"; // vaše heslo $mail->SMTPSecure = "ssl"; // šifrování ssl $mail->Port = 465; // port připojení
Pokud program pro odesílání přes smtp spouštíte poprvé, pak je vhodné před odesláním dodatečně použít $mail->SMTPDebug = 1; přijímat všechny zprávy od klienta a smtp serveru, tzn. Celý proces připojení, autorizace atd. se zobrazí na obrazovce, což je velmi užitečné pro ladění vašeho programu.
Odeslání e-mailu s přílohou pomocí PHPMailer
Zde je vše docela jednoduché, stačí použít metodu přidat Přílohu. Uvedu příklad a zároveň předvedu několik dalších další funkce:
// Zahrnout knihovnu PHPMailer use PHPMailer\PHPMailer\PHPMailer; použijte PHPMailer\PHPMailer\Exception; vyžadovat "PHPMailer/PHPMailer.php"; vyžadovat "PHPMailer/Exception.php"; // Vytvořte dopis $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [e-mail chráněný]", "Ivan Ivanov"); // od koho $mail->addReplyTo(" [e-mail chráněný]", "Ivan Ivanov"); // zpáteční adresa $mail->addAddress(" [e-mail chráněný]", "Vasya Petrov"); // komu $mail->Subject = "Test"; // předmět $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // získat "tělo" dopisu ze souboru $mail->AltBody = "Plain text letter" // prostý text dopisu, pokud klient nepodporuje html $mail->addAttachment("my_file.txt" // připojit jeden soubor $mail-); >addAttachment("phpmailer) .jpg" // připojte druhý soubor // Odeslat if ($mail->send()) ( echo "Zpráva odeslána!"; ) else ( echo "Chyba: " . $mail- >Info o chybě);
Pomocí addAddress můžete přidat více adres příjemců. Nebo v případě potřeby můžete naopak pomocí metody vymazat všechny adresy příjemců clearAddresses(). Všechny přílohy můžete vymazat pomocí clearAttachments().
Můžete také použít PřidatEmbeddedImage přidat k emailu přílohu (obvykle obrázek), která je určena pro použití v html kódu a nebude dostupná ke stažení. Příklad použití obrázku v dopise, který není k dispozici ke stažení:
// Zahrnout knihovnu PHPMailer use PHPMailer\PHPMailer\PHPMailer; vyžadovat "PHPMailer/PHPMailer.php"; //Vytvořte dopis $mail = new PHPMailer; $mail->JeHTML(true); $mail->setFrom(" [e-mail chráněný]", "Ivan Ivanov"); $mail->addAddress(" [e-mail chráněný]", "Vasya Petrov"); $mail->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Body = "
Obrázek v html kódu
"; // Odeslat $mail->send();Takže můžete poslat dopisy s obrázky, které jsou pouze v těle dopisu, ale nelze je stáhnout jako přílohu. Tyto obrázky lze použít kdekoli v html kódu dopisu, stačí zadat cid obrázku, který jste použili v AddEmbeddedImage místo url adresy.
Odesílání podepsaných a šifrovaných e-mailů přes PHPMailer
Ve výchozím nastavení PHPMailer šifruje všechny odeslané zprávy. Šifrování e-mailů můžete zakázat pouze při odesílání e-mailů přes SMTP pomocí kódu:
$mail->SMTPSecure = false; $mail->SMTPAutoTLS = false;
Na podepište dopis podpisem DKIM, musíte provést několik kroků:
- Generujte soukromé a veřejné klíče pro vaši doménu
- Přidejte záznam DNS pro doménu TXT s veřejným klíčem
- Před odesláním e-mailu nakonfigurujte podpis DKIM v PHPMaileru
Nyní popíšu každý krok trochu podrobněji.
Generování soukromých a veřejných klíčů
Pokud máte hosting Linux a máte přístup k Shell, pak je generování klíčových souborů stejně snadné jako loupání hrušek, stačí spustit 2 příkazy s vašimi běžnými uživatelskými právy:
Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pout
resp. test-private.pem A test-public.pem- jedná se o soukromé a veřejné klíče. Musíte je uložit do složky, která nebude přístupná návštěvníkům webu ani nikomu jinému kromě vás.
Pokud není možné provádět příkazy v shellu, pak pro generování soukromých a veřejných klíčů a jejich uložení do souborů můžete použít následující kód:
$domain = "test.ru"; // vaše doména $privatekeyfile = "test-private.pem"; // název souboru, do kterého bude zapsán soukromý klíč $publickeyfile = "test-public.pem"; // název souboru, do kterého bude zapsán veřejný klíč if (file_exists($privatekeyfile)) ( echo "
Použití existujících klíčů
"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "Vytvořte klíče"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file =_vate_keypks $prily); ($ pk );
Soukromý klíč (nechte tento soukromý!):
" . $privatekey .""; echo"
Veřejný klíč:
". $publickey."";
Pozor! Nezapomeňte se ujistit, že složka, kam budou soubory uloženy, je zapisovatelná.
Přidání DNS záznamu s veřejným klíčem
DNS záznam je nutný, aby poštovní servery, které budou přijímat vaše dopisy, mohly ověřit podpis na dopise přečtením DNS záznamu vaší domény. Obvykle můžete přidat záznam DNS v ovládacím panelu vaší domény nebo v ovládacím panelu hostitele. Pokud nevíte, jak přidat záznam, obraťte se na podporu poskytovatele hostingu.
Musíte přidat záznam DNS takto:
Název položky: mail._domainkey.test.ru. (na konci je tečka ".")
TTL: 3600 (nebo podle toho, co bude výchozí)
Typ příspěvku: TXT
Význam: v=DKIM1; h=sha256; t=s; p=VÁŠ_VEŘEJNÝ_KLÍČ
V názvu položky test.ru musí být nahrazen názvem vaší domény. Nahradíte slova „VÁŠ_PUBLIC_KEY“ textem, který jste obdrželi v předchozím kroku za „Veřejný klíč“, bez „-----BEGIN PUBLIC KEY-----“ a „-----END PUBLIC KEY- -- --“, pouze samotný klíč. V tomto případě jsou potřeba všechny klíčové linie zřetězit do jedné dlouhé řady aby nedocházelo k zalomení řádků.
Nastavení podpisu DKIM v PHPMailer a odeslání e-mailu
Nyní zbývá jen provést pár nastavení PHPMaileru před odesláním dopisu a bude podepsán. Myslím, že následující příklad vše objasní:
// Zahrnout knihovnu use PHPMailer\PHPMailer\PHPMailer; vyžadovat "PHPMailer/PHPMailer.php"; // Vytvořte dopis $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [e-mail chráněný]"); $mail->addAddress(" [e-mail chráněný]"); $mail->Subject = "Toto je test"; $mail->msgHTML("
Toto je test
"); // Nastavení podpisu DKIM $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // Odeslat $ mail- >odeslat();Samozřejmě test.ru měli byste změnit název své domény a test-private.pem na úplnou cestu a název souboru soukromého klíče, který byl vytvořen ve fázi generování klíče.
Nyní budou vaše e-maily odeslané přes PHPMailer podepsané DKIM vaším soukromým klíčem.
2019-08-05
Dobrý den, milý návštěvníku!
Odpusťte mi prosím zpoždění s aktualizací blogu. Existuje pro to ale zcela srozumitelné vysvětlení. Koneckonců léto, dača, hosté, les, voda a mnoho dalšího, což mi nedovolilo popasovat se s tvorbou webu. Ale teď jsem se trochu uvolnil, hosté odešli a myslím, že teď tomu budu určitě věnovat patřičnou pozornost.
Poté, co jsme v minulém článku připojili poštu naší domény k jedné z poštovních služeb, nyní se podívejme, jak můžete odesílat e-maily z webu. Navíc tak, aby naše dopisy nekončily ve SPAMu, ale byly spolehlivě, s vysokou mírou pravděpodobnosti, doručeny našim příjemcům.
Obecně je v PHP zabudovaná funkce mail() pro odesílání dopisů. Je však třeba poznamenat, že i přes jednoduchost této metody (v tomto případě pro odesílání dopisů stačí zadat pouze jeden řádek kódu s určitými parametry) má použití této možnosti významnou nevýhodu spojenou s problémem SPAM .
Faktem je, že anti-SPAM filtry poštovních serverů na straně příjemce skutečně neupřednostňují dopisy zasílané prostřednictvím funkce mail(). A ve většině případů jsou takové zprávy filtrovány nebo dokonce smazány, než se dostanou k adresátovi.
A aby se takové případy co nejvíce eliminovaly, obvykle se používá další možnost, kdy se dopisy posílají, jako by to dělala poštovní služba třetí strany.
Tato metoda se nazývá odesílání pošty přes SMTP s autorizací. Na což se dnes podíváme na příkladu odeslání formuláře zpětné vazby. Navíc k tomu využijeme poměrně známou a oblíbenou knihovnu PHPMailer, která vám umožní celkem jednoduše organizovat odesílání dopisů přes SMTP.
- Jak budeme posílat dopisy se zpětnou vazbou
- Vytvoření formuláře zpětné vazby
- Instalace knihovny PHPMailer
- Vytvoříme skript pro odesílání pošty přes SMTP
- Kontrola odesílání e-mailů
- Zdrojové soubory místo
Jak budeme posílat dopisy se zpětnou vazbou
Než začnete praktická práce Po odeslání dopisů se zpětnou vazbou se nejprve rozhodneme, jak to uděláme.
Formulář zpětné vazby je navržen tak, aby uživateli umožnil komunikovat s administrátorem webu a předat mu jeho zprávu. Tento formulář se obvykle skládá z několika polí a tlačítka „Odeslat“.
K odeslání e-mailu v zásadě stačí použít pouze několik polí, která poskytují dostatečné informace o uživateli a obsahu zprávy, jako například:
- "Jméno" - pro zadání jména odesílatele zprávy;
- "E-mail" - pro e-mailovou adresu odesílatele;
- "Předmět zprávy";
- "Text zprávy".
I když můžete přidat další. Například telefonní číslo, pokud je to opravdu nutné.
V našem případě budou takové dopisy zasílány na adresu správce webu ze skutečné poštovní schránky s autorizací na poštovní službě, ke které je naše doména připojena.
Jelikož jsme se v předchozím článku zaměřili na kontrolu připojení doménové pošty ke službě Yandex.Mail, budeme posílat poštu pro tuto možnost. I když to není důležité. Níže uvidíte ty možnosti, které vám po změně umožní odesílat e-maily přes poštovní server Mail.ru.
Jako skutečnou schránku, ze které se budou odesílat dopisy, použijeme účet nově vytvořeného doménového uživatele pošty, řekněme s adresou [e-mail chráněný]. A tyto dopisy zašleme do schránky správce [e-mail chráněný], kterou jsme dříve vytvořili v předchozím článku.
Odesílatelem dopisu z formuláře zpětné vazby bude tedy poštovní schránka [e-mail chráněný]., a příjemce - [e-mail chráněný]. V tomto případě budou v těle odeslaného dopisu přeneseny všechny informace o uživateli, který zprávu odeslal s jejím obsahem.
Vytvoření formuláře zpětné vazby
Poté, co jsme se rozhodli pro postup zasílání dopisů, nyní vytvoříme formulář zpětné vazby, pomocí kterého to uděláme.
Níže je uveden HTML kód tohoto formuláře, který umístíme na stránku "Kontakty" (soubor kontakty.php v adresáři článků).