Mailing-list konzola v PHP
Tiež vás obťažuje manuálne rozosielanie rovnakých emailov množstvu ľudí? Čo to tak urobiť automaticky cez PHP? Navyše môžete emaily rozosielať aj keď nie ste práve on-line. Ako je to možné? Dočítate sa!
Začíname
Najskôr si spravíme formulár, v ktorom zistíme meno odosielateľa, jeho email, predmet a samotný text. Keďže veľkosť emailu, poslaného funkciou mail() prakticky nie je obmedzená, nemusíme kontrolovať dĺžku textu. Tu je náš fomulár:
|
Výsledok formulára spracujeme skriptom mail.php, formulár odošleme metódou POST. Teraz prichádza na rad PHP a hlavne databáza SQL. V databáze, v našom prípade s názvom mail máme uložené v jednom stĺpci s názvom email emailové adresy, v druhom stĺpci s názvom meno máme uložené mená majiteľov emailových schránok, resp. prezývky. Z tejto databázy budeme v skripte mail.php vyberať emaily a dokonca oslovíme každého po mene. Databázu vytvoríme takto:
|
Keď máme vytvorenú databázu emailov a formulár, ktorým zistíme všetko potrebné, vytvoríme si skript, ktorý zašle napísaný text na všetky emaily z databázy a pripojí ako pozdrav vlastné meno. Tu je: (neskôr si ho vysvetlíme)
mail.php
|
Relatívne krátky skriptík, ktorý toho veľa dokáže… V prvom riadku sa pripájame k databáze mySQL. Ak budete tento skript používať treba nahradiť slova VAS_LOGIN a VASE_HESLO vašimi skutočnými loginmi a heslami. V druhom riadku sa poisťujeme, že skript oznámi chybu databáze, v prípade, že by sa nepripojil k mySQL. Ďalej nasleduje požiadavka na databázu – Select * from mail, čo znamená vlastne "Zobraz všetko z databázi mail". Treba nahradiť slovo VASA_DB názvom databázi, kde je tabuľka mail. Ďalší riadok zas zariadi, aby skript vypísal konkrétnu závadu, v prípade, že sa nepodarí požiadavku splniť. Do premennej kolko v ďalšom riadku uložíme počet emailov v databázi mail.
Teraz nasleduje samotný cyklus. Použijeme jednoduchý tvar cyklu while. Prvý riadok využíva funkciu Mysql_fetch_array() v spolupráci z cyklom while. Vlastne prikazujeme aby sa PHP kód medzi while a endwhile vykonával toľko krát, koľko záznamov má výsledko požiadavky na mySQL, teda Select * from mail. Nemusíme používať žiadne $e++, táto funkcia si to všetko sama zariadi. Kvôli jednoduchosti v druhom riadku do premennej txt uložíme oslovenie v tvare "Nazdar MENO" a pripojíme vlastný napísaný text. MENO sa vždy mení. V treťom riadku ukladáme do premennej komu email z databázi. V ďalšom už posielame pomocou funkcie mail samotný email. Funkcia mail() má štyri parametre (len 3 sú však povinné) a to: mail("email_prijímateľa", "predmet", "text", "nepovinné hlavičky"). V našom prípade ukladáme ako hlavičku len odosielateľa a jeho email, čo úplne stačí… Tento cyklus musíme ukončiť príkazom endwhile…
Posledný odsek je vlastne už len taký report, vypíše, že skript bol úspešne vykonaný a odoslali ste email napr. 120 ľuďom…
Keď chcete mať fungujúci mailing list, ešte môžete urobiť pomocou formulára aplikáciu, ktorá vloží informácie do databázi. Poslúži vám pri tom formulár, v ktorom zistíte meno a email a skript, ktorý sa pripojí k mySQL a vykoná tento príkaz:
|
Ako som písal, je možné odosielať emaily aj keď nie ste on-line. Treba do skriptu mail.php na začiatok pridať tieto riadky:
|
A teraz máte 3 možnosti. Ak chcete tento text odosielať pri nejakej príležitosti, zavoláte si jednoducho skript mail.php takto:
|
Alebo môžete nechať odkaz: <a href="mail.php?mode1">Klikni…</a>. Ak chcete skript vykonávať vždy napr o 1:00 každý deň, na UNIXových servroch použijete démona crond. Ovládate ho príkazom crontab. Ak zadáte príkaz crontab -e, spustí sa editor, do ktorého napíšete: 0 1 * * * sbin/php -f /skripty/mail.php?mode=1. Démon crond sa používa na UNIXoch, služba SCHEDULE na Windowsoch NT. V dnešnej dobe však väčšina servrov pracuje s na UNIX bázi a bohužial neponúka démona CROND. A navyše neponúka SHELL konto, takže sa ku CRONDu nedostanete. Tým pádom je pre vás riešenie služba www.web2mail.com. Tu sa zaregistrujete a nastavíte posielanie súboru http://www.VAS_WEB.cz/mail.php?mode=1 na vas email. Tým pádom musí služba urobiť prístup na skript a skript sa vykoná. Email potom môžete jednoduchým filtrom automaticky mazať.
A je tu koniec
Skript vám bohužial nemôžem predviesť naživo, pretože by to bol spamming. A na ten si dávajte veľký pozor! Vďaka za dočítanie sa až sem, dúfam, že vám aplikácia uľahčí život…
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
AI a internetové podvody
29. října 2024 -
Thunderbolt 4 vs. OCuLink: Přišel čas na upgrade?
27. května 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024