Kontaktní formulář na Vašem webu: odesílání polí e‑mailem a ochrana proti spamu
Chcete, aby Vám návštěvníci mohli psát prostřednictvím formuláře na Vašem webu? V tomto článku se dozvíte, jak takový formulář vytvořit, jak ho chránit před spamem a jak zajistit, aby e-maily správně docházely.
Vytvoření formuláře
- WordPress: použijte plugin pro formuláře, například Contact Form 7. Nemusíte nic sami programovat. Placený plugin není potřeba.
- Vlastní web v HTML nebo PHP: zadejte do vyhledávače „vytvoření HTML formuláře“ a najdete bezplatné ukázky. Nechte formulář odesílat přes SMTP, ne pomocí PHP funkce mail() (viz níže).
Jak zabránit spamu přes formulář
Formulář bez zabezpečení téměř jistě objeví spamboti. Pak Vám bude chodit spousta spamu a v nejhorším případě bude Váš formulář zneužit k rozesílání spamu dalším lidem. Proto svůj formulář vždy chraňte:
- Captcha: kontrola, která rozliší lidi od botů, například Google reCAPTCHA nebo Cloudflare Turnstile. Contact Form 7 podporuje reCAPTCHA. Pro Turnstile nainstalujte samostatný plugin, například Simple Cloudflare Turnstile.
- Honeypot: skryté pole, které lidé nevidí, ale boti ho vyplní. Pokud je pole vyplněné, zpráva se neodešle. I pro to existují malé pluginy.
- Fóra a blogy: pro mnoho softwaru pro fóra a blogy existuje propojení se službou Stop Forum Spam. Ta vede seznam IP adres, ze kterých se rozesílá spam, a blokuje zprávy z těchto adres.
- Udržujte svůj web aktuální: pravidelně aktualizujte WordPress, svou šablonu i pluginy. Zastaralý plugin je častou cestou ke zneužití.
Komentáře pod blogem nebo ve fóru
Spamboti nevkládají zprávy jen přes formuláře, ale také komentáře s odkazy v naději, že je vyhledávače započítají. Takto tomu zabráníte:
- Nechte komentáře nejprve schvalovat. Ve WordPressu v části Nastavení › Diskuze zapněte, že komentář musí být schválen ručně. Pokud komentáře nepoužíváte, vypněte je úplně.
- Použijte antispamový plugin nebo captchu pro komentáře, stejně jako u formuláře.
- Označte odkazy v komentářích. Odkazy, které vkládají sami návštěvníci, by měly mít atribut
rel="ugc"neborel="nofollow". Vyhledávače pak vědí, že za tento odkaz neručíte. WordPress to od verze 5.3 dělá automaticky. U jiného softwaru se podívejte do nastavení nebo použijte plugin.
Jak zajistit, aby e-maily z formuláře správně docházely
- Odesílejte přes SMTP. Při použití funkce mail() v PHP bude odesílatelem adresa s názvem účtu Vašeho balíčku a tu nelze změnit. Takové e-maily často končí ve spamu. Přes SMTP se přihlašujete skutečnou e-mailovou schránkou a odesílatele určujete sami. Ve WordPressu k tomu použijte SMTP plugin, například WP Mail SMTP. Pro vlastní PHP skript si přečtěte Jak v PHP nastavit správného odesílatele u funkce mail()?.
- Odesílatel na Vaší vlastní doméně. Nechte formulář odesílat z adresy na Vaší vlastní doméně, například info@vasedomena.cz. Nikdy nepoužívejte jako odesílatele e-mailovou adresu návštěvníka: mnoho příjemců by takový e-mail odmítlo. Adresu návštěvníka vložte do pole Odpovědět komu (Reply-To), pak můžete na zprávu jednoduše odpovědět.
- Údaje pro SMTP: název serveru Vašeho balíčku, port 587 se STARTTLS nebo port 465 se SSL/TLS a e-mailová adresa a heslo schránky. Viz Přehled všech nastavení.
Je Váš formulář už zneužíván?
Dostáváte zpět mnoho e-mailů, které jste neodeslali, nebo server hlásí, že byl dosažen limit odesílání? Pak je Váš formulář možná zneužíván. Přečtěte si Co dělat, když byla Vaše e-mailová adresa zneužita a Limity odesílání a hlášení 'message limit reached'.
Chcete se dozvědět víc? Absolvujte bezplatný kurz WordPressu, lekci 9.1 E-maily z WordPressu.
