Po pravdě řečeno, nikdy jsem moc neřešil, zda, co, kam a jak často moje weby posílají za e-maily. Byť to není úplně nejlepší má vizitka. Maxiorel.cz byl propojen na Mandrill (dokud jej nedávno nezrušili) a tam bylo hezky vidět, jak moc je server odesílající e-maily vytížený. U těch ostatních jsem to nechával na poštovním programu na serveru a nijak jsem neřešil, jestli není nadužíván, zda se mi pak nevrací nějaké e-maily, nebo jestli snad server neslouží jako spamovací farma.
Ale před pár týdny jsem musel z Mandrillu přejít na jiné řešení. Zaujal mě Sendgrid, ale vzhledem k malým objemům mailů, které posílám, jsem se rozhodl upravit SPF záznamy u domény, pokusil se aktivovat DKIM a vše otestoval pomocí Mail testeru. Zprávy chodí bezvadně a jediné, co mě ještě hlodalo, byla statistika toho, kolik zpráv z webu denně odchází. Přeci jen to není tak dlouho, co jsem řešil něčí weby napadené havětí rozesílající spam. Hosting to tehdy řešil zablokováním mailovací funkce v PHP na daných webech.
Mimochodem, Wedos podobnou situaci, kdy napadený web rozesílá spamy, neřeší zablokováním maileru, ale kompletním zablokováním webu. A protože to není skutečný multihosting, zablokuje všechny weby, které máte na jednom jeho hostingu umístěny. Alespoň tak praví zkušenost mého kamaráda.
Pflogsumm
První z dvojice nástrojů, které jsem využil k analyzování e-mailů rozesílaných serverem, je analyzátor logu Postfixu, který zjištěná data pošle do e-mailu na zvolenou adresu. Nainstalujete jej příkazem aptitude install pflogsumm.
Následně stačí spustit příkaz v následujícím tvaru, samozřejmě s upravenou IP:
pflogsumm /var/log/mail.log | formail -c -I"Subject: Mailova statistika" -I"From: pflogsumm@localhost" -I"To: vas@mail" -I"Received: from www.domena.tld ([192.168.0.1])" | sendmail vas@mail
Údaje o mailech poté uvidíte ve zprávě, která vám dorazí. Oproti následujícímu nástroji Mailgraph není nijak hezky formátovaná, ale zase má řadu údajů navíc. Pokud chcete statistiku do své poštovní schránky pravidelně, zde najdete návod, jak vytvořit skript a přidat jej do cronu.
Mailgraph
Tento program nebo spíše CGI skript napsaný v Perlu zobrazuje obrázkové grafy o využití Postfixu či Sendmailu. Z nasbíraných dat pak vyprodukuje denní, týdenní, měsíční a roční grafy odeslaných, přijatých, odmítnutých a vrácených e-mailů. Jak co se jejich poštu týče, tak i ve formě počtu velikosti dat.
Instalace nástroje Mailgraph je docela jednoduchá, alespoň v Debianu. Spustil jsem aptitude install rrdtool mailgraph, a poté dpkg-reconfigure mailgraph. Druhý příkaz spustil v konzoli jednoduchého průvodce nastavením, kde se určuje cesta k logu mailserveru a informace o zpracovávání spamu/virů.
Následně je potřeba soubor mailgraph.cgi zkopírovat do složky, odkud bude na webu čitelný, například:
cp -p /usr/lib/cgi-bin/mailgraph.cgi /var/www/www.example.com/cgi-bin
Na mém serveru s Virtualminem to tak jednoduché nebylo. Skript jsem nakopíroval do složky /home/jmenowebu/cgi-bin, ale po načtení domena.tld/cgi-bin/mailgraph.cgi vracel chybu 500 Internal server error.
Vyžadovalo to ještě chmod úpravu na 755 a přepsání části skriptu na konkrétní doménu, některé proměnné mi v něm prostě nefungovaly. Dále jsem do hlavičky přidal styly z původního CSS ve zdrojové složce.
A co mi to přineslo?
Výsledky mě nepříjemně překvapily. Že mi Mollom chrání spolehlivě komentáře na Maxiorlovi, ale už ne tak dobře registrační formulář pro založení nových uživatelů, to jsem věděl. Bylo to vidět i ve statistice, protože Drupal rozesílá zprávy všem registrovaným uživatelům pro potvrzení.
Nasadil jsem tedy Captcha Riddler, spamové pokusy o vytváření účtů okamžitě ustaly a za pomoci Administration Views jsem stovky falešných uživatelských účtů smazal.
Ovšem z nějakého důvodu mi nedošlo, že problém s tímto mám i na několika dalších, minimálně navštěvovaných webech s WordPressem a Drupalem. Tam jsem to nakonec vyřešil zákazem komentářů, přechodem na Disqus a zákazem registrací či nasazením Captcha Riddleru, případně různou kombinací těchto věcí.
Poučení? Neškodí se na server podívat nejenom po stránce aktualizací a toho, zda weby jedou, ale i z pohledu, co se děje za závěsem.
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.
Také jsem nakonec vybral sendgrid. Až nyní člověk přichází na to, jak byl mandrill vymakaný nástroj a ostatním spousta funkcí chybí (pokročilé statistiky, historie emailů, apod.).
Málokdo má ale možnost na server instalovat cokoliv, takže pro drupal bych spíše doporučil mail logger a nebo přímo statistiky v sendgrid.