Drupal i WordPress, tedy nejrozšířenější redakční systémy pro PHP, ve výchozí podobě odesílají zprávy z webu pomocí vestavěné funkce PHP. Ne na každém hostingu to bude fungovat a výsledkem může být, že prostě budete testovat například kontaktní formulář na svém webu a žádná zpráva vám z něj nikdy nedorazí.
Často se stává, že je na hostingu problém s rozesíláním newsletterů. Většinou to hostingy mají zakázáno přímo ve svých obchodních podmínkách. Není divu – kdo by chtěl, aby se jeho IP adresa ocitla na nějakém blacklistu kvůli uživatelům posílajícím hromady mailů. Podobný problém vás může potkat, máte-li hojně navštěvovaný web s mnoha komentáři, na které posíláte upozornění svých čtenářům.
Přestože si myslím, že na newslettery existuje lepší řešení, než to, co mají Drupal či WordPress vestavěné za pomoci doplňkových modulů, někdo to prostě používá. A pokud také máte problémy s posíláním e-mailových zpráv z webu, mohlo by vám pomoci následující řešení.
Když potřebujete externí SMTP
Tím řešením je externí SMTP, které do webu napojíte. Vaše webové stránky pak budou poštu odesílat stejně, jako když posíláte poštu ze svého e-mailového klienta. Tedy navážou spojení se vzdáleným poštovním serverem a zprávu pošlou přes něj.
Jako externí SMTP server můžete použít třeba ten, který používáte pro svou běžnou poštu. I ten ale může být přetížen a zřejmě nebudete chtít, aby se pak i vašem běžné zprávy dostávaly na nějaký blacklist. Existují proto více či méně zpoplatněné služby nabízející prostý SMTP server sloužící jen pro odesílání mailů. Dostanete jeho adresu, přístupové údaje a to jen nastavíte do webové aplikace.
Jedním z takových SMTP serverů, které lze (nejen) ve spojení s webovou aplikací využít, je třeba Cloud Mail od Zoneru.
Externí SMTP v Drupalu
V základní instalaci Drupalu neexistuje možnost, jak odeslat zprávy jinak, než pomocí výchozího nastavení PHP. Pro napojení na externí SMTP budete potřebovat modul SMTP Authentication Support.
Po jeho instalaci přejděte do nastavení Konfigurace >> Systém >> SMTP Authentication Support. Nejprve modul aktivujte prvním přepínačem, jinak Drupal bude stále využívat původní způsob odesílání mailů. Následně vyplňte údaje v podobě adresy SMTP serveru a přístupových údajů k němu.
Před uložením nastavení lze vyplnit poslední políčko s e-mailovou adresou, na kterou vám bude odeslána testovací zpráva. Pokud testovací zpráva nepřijde, pak jste zřejmě ve výše uvedeném nastavení na něco zapomněli nebo uvedli nepřesně. Volba Enable debugging vám zobrazí hlášení SMTP serveru, takže pak snadněji zjistíte, že jste zadali špatně například přihlašovací jméno k SMTP.
Externí SMTP ve WordPressu
Ve WordPressu je situace podobná, s tím rozdílem, že zde máte na výběr velký počet pluginů, které odesílání mailů pomocí SMTP umožní. Jedním z oblíbených pluginů je Easy WP SMTP. Jeho nastavení je opravdu snadné. Po aktivaci pluginu půjdete do Nastavení >> Easy WP SMTP. Vyplníte postupně údaje odesilatele, adresu SMTP serveru, port, s největší pravděpodobností zapnete SMTP ověřování a uvedete přihlašovací údaje. Nastavení poté uložte.
Ve spodní části formuláře s nastavením lze vyzkoušet, zda zprávy ze serveru odchází. Vyplníte adresu příjemce, předmět mailu a něco do jeho těla zprávy. Klepnete na tlačítko Send Test Email a prohlédnete si svou schránku.
Jak vidíte, oba zmíněné redakční systémy nemají problém s odesíláním mailů ani v případě, kdy to nejde základní cestou a poskytovatel hostingu to blokuje. Stačí doinstalovat jeden modul nebo plugin, správně jej nastavit a je po problému.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Mám přesně tento problém. Jsem zvyklý používat vestavěbou funkci šablony wordpressu na posílání mailu od návštěvníka provozovateli webu a na jednom hostingu s tím bojuji už dlouho. Takže díky za dobrou radu, alespoň využiju efektivně víkend ;)