# Értesítések hibaelhárítása

> Mit tegyél, ha az értesítő levelek nem érkeznek meg: a beállítások ellenőrzése, SMTP, a küldési eredmény jegyzetei, naplózás, feketelisták, SPF és DMARC.

## Mikor van a gond általában nem a Gravity Formsban?

Ha nem érkezik meg az értesítő levél, a hiba leggyakrabban nem a Gravity Formsban van, hanem abban, ahogy a WordPress alapból kezeli a levélküldést. A WordPress a PHP `mail` függvényét hívja a `wp_mail()` függvényen át, és ez a módszer nem tartalmaz megfelelő levélhitelesítést. Az így küldött levelet ezért nagyobb eséllyel minősíti spamnek vagy utasítja el a fogadó kiszolgáló, esetleg csendben eldobja. További gyakori ok a hibás értesítésbeállítás, az elgépelt címzett, az érvénytelen feladói cím, a nem teljesülő útválasztási feltétel és a kikapcsolt értesítés.

A legmegbízhatóbb megoldás, ha a kimenő leveleket külön levélküldő szolgáltatáson át irányítod. A Gravity SMTP a Gravity Forms készítőinek bővítménye, amely a webhelyet a választott megbízható levélküldő szolgáltatáshoz köti, így megfelelő hitelesítést ad, és javítja a kézbesíthetőséget a WordPress minden levelénél, nem csak a Gravity Forms értesítéseinél.

### Gyors javítások, ha a bejegyzés rendben mentődik, de a levél nem érkezik meg

Jellemző jelek: a bejegyzés hibátlanul szerepel az **Űrlapok → Bejegyzések** alatt, a bejegyzés részleteinél, a Gravity Forms nem jelez hibát, és a bejegyzés jegyzetei szerint az értesítés elment, a levél mégsem jön meg.

- Ne használj ingyenes levelezőszolgáltatót (Gmail, Yahoo) a **Feladó e-mail-címe** mezőben.
- A **Feladó e-mail-címe** mezőben a webhelyed tartományához tartozó címet használj.
- Állíts be SMTP-t egy bővítménnyel, például a Gravity SMTP-vel, a megbízhatóbb kézbesítésért.
- Nézd meg a spam- vagy levélszemét-mappát, vagy próbáld másik e-mail-címmel.
- Ellenőrizd a DNS-beállításaidat: az SPF, DKIM és DMARC rekordoknak helyesen kell szerepelniük.

A teljes lépéssor lent következik.

## Hogyan megy ki egy levél?

A Gravity Forms nem küld közvetlenül e-mailt: a WordPress `wp_mail()` függvényének adja át a levelet. Onnan vagy a webkiszolgáló küldi el, vagy egy SMTP-kiszolgáló, illetve külső levelezőszolgáltatás (például SendGrid, Mailgun). Ha a WordPress átadta a levelet, a kézbesítés a küldő és a fogadó levelezőkiszolgáló dolga, ezt a Gravity Forms már nem befolyásolja. A WordPress szűrőin keresztül más bővítmények vagy egyedi kódok is módosíthatják a levelet, miután a Gravity Forms átadta.

A lépéseket sorban végezd el.

## 1. Frissítsd a WordPresst és a Gravity Formst

Egy régebbi verzióban lehet olyan hiba, amit az újabb már javít. Ellenőrizd, hogy mindkettő naprakész.

## 2. Nézd át az értesítés beállításait

- **Elgépelések.** Egy apró hiba a címben is megakadályozhatja a küldést.
- **Szóközök.** A címzett címében vagy több cím között lévő szóköz is okozhat hibát.
- **Esemény.** Minden értesítéshez érvényes esemény kell. Ha az esemény mellett „(Event Missing)” szerepel, az eseményt létrehozó kiegészítő vagy egyedi kód már nem aktív, vagy el lett távolítva. Az értesítés addig nem fut, amíg érvényes eseményt nem választasz. Ellenőrizd a telepített kiegészítőket, vagy válassz másik eseményt, például az **Űrlap elküldve** értéket.
- **Érvényes feladói cím.** A **Feladó e-mail-címe** olyan cím legyen, amelyet a kiszolgálód engedélyez, tehát a webhelyed tartományát használja. Soha ne a látogató címét írd feladónak: az SPF és DMARC szabályok miatt a levelet spamnek minősíthetik vagy elutasíthatják (a Yahoo, az AOL és a Gmail is ismerten alkalmazza ezt). Ha azt szeretnéd, hogy a címzett más címre válaszolhasson, használd a **Válaszcím** mezőt.
- **Ne legyen ugyanaz a feladó és a címzett.** Sok levelezőszolgáltató spamnek tekinti vagy elutasítja az ilyen levelet. A feladó legyen más, érvényes cím.
- **Útválasztás.** Ha az értesítés útválasztást használ, ellenőrizd, hogy legalább egy feltétel teljesül. Ha egyik sem, nincs címzett, és a levél nem megy el (lásd: [E-mail-útválasztás](https://hub.hellowp.io/hu/plugins/gravityforms/ertesitesek-utvalasztas/)).
- **Az értesítés be van kapcsolva?** Tesztelés közben gyakran kikapcsolják az értesítéseket, és elfelejtik visszakapcsolni. Az űrlap **Beállítások → Értesítések** listájában minden értesítés előtti kapcsolónak aktívnak (zöldnek) kell lennie.

## 3. Használj SMTP-t vagy külső levelezőszolgáltatást

Előfordul, hogy a PHP saját levélküldése a kiszolgáló beállításai miatt nem működik megbízhatóan. Egy SMTP-szolgáltatás vagy tranzakciós levelezőszolgáltatás megbízhatóbb.

- A Gravity SMTP különböző SMTP-szolgáltatókhoz és API-alapú szolgáltatásokhoz kapcsolódik, és a Gravity Forms, a WordPress, a sablon és más bővítmények leveleit is kezeli.
- Külön kiegészítők állnak rendelkezésre a Mailgun, a Postmark és a SendGrid szolgáltatáshoz. Ezekkel csak a Gravity Forms értesítései mennek a kiválasztott szolgáltatón át, a WordPress többi levelét nem érintik.
- Ha az egész webhely levelezését SMTP-kiszolgálóra akarod bízni, a WordPress-bővítménytárban több általános SMTP-bővítmény is van (például SAR Friendly SMTP, Post SMTP Mailer/Email Log, Easy WP SMTP, Mailgun for WordPress). Bármelyiket a szolgáltatótól kapott adatokkal kell beállítani.

A külső szolgáltatásokat és bővítményeket csak javaslatként említjük: a Gravity Forms nem teszteli és nem támogatja őket, ezért a megfelelőségükről (működés, biztonság, jogi és költségvonzat) neked kell meggyőződnöd.

## 4. Nézd meg a küldési eredmény jegyzetét

Minden olyan bejegyzéshez, amely a küldési eredmény naplózását támogató verzióval jött létre, a rendszer jegyzetet fűz az értesítések küldésének eredményéről. Keresd meg: **Űrlapok → Bejegyzések**, kattints egy bejegyzésre, majd görgess le a **Jegyzetek** részhez.

Ha a jegyzet alább az egyik eset, a Gravity Forms oldalán minden rendben ment, a gond a WordPress és a küldő kiszolgáló között van.

| Jegyzet | Mit jelent |
|---|---|
| WordPress successfully passed the notification email to the sending server. | A beállítások jók, a levél hiba nélkül átkerült a `wp_mail()` függvényhez, a WordPress sikeresen átadta a kézbesítéshez. A továbbiakat csak a kiszolgáló üzemeltetője tudja vizsgálni. |
| Could not instantiate mail function. | A WordPressben lévő PHPMailer nem tudja használni a PHP `mail` függvényét. Leggyakrabban tárhelykorlátozás okozza (például egy spamszűrő elutasította a levelet). |
| SMTP Error: connect() failed. | SMTP-bővítményt használsz, de a WordPress nem éri el az SMTP-kiszolgálót. Oka lehet hibás beállítás az SMTP-bővítményben, hogy a tárhely blokkolja a kimenő kapcsolatot, vagy hogy az SMTP-kiszolgáló blokkolja a webkiszolgálót. |
| SMTP Error: Could not authenticate. | A WordPress eléri az SMTP-kiszolgálót, de nem tud bejelentkezni. Ellenőrizd a felhasználónevet, a jelszót, a portot és a titkosítást; az is lehet, hogy az SMTP-felhasználó inaktív. |
| SMTP Error: Data not accepted. | Az SMTP-kiszolgáló a szabályai miatt visszautasítja a levelet. Gyakran a feladói cím a gond (sok kiszolgáló csak a felhasználónévhez tartozó címről enged küldeni), de a levél bármely más része is okozhatja. |
| WordPress was unable to send the notification email. | A WordPress ismeretlen okból nem tudta elküldeni a levelet, a küldő kiszolgáló nem adott további információt. Csak a kiszolgáló üzemeltetője tudja kivizsgálni. |

A jegyzetek szövege angol marad, mert azt a WordPress és a levélküldő bővítmény adja.

## 5. Kapcsold be a naplózást

A naplózással azokat az eseteket is kiderítheted, amikor a küldési jegyzet nem kerül a bejegyzéshez. A naplóból látszik, hol hibázik az értesítés. Ha az ügyfélszolgálattól kérsz segítséget a napló értelmezéséhez, addig ne kapcsold ki a naplózást, amíg választ nem kapsz, különben a naplófájlok törlődnek.

## 6. Keress bővítmény- vagy sablonütközést

Más bővítmények vagy a sablon is megakadályozhatják az értesítések működését. Kapcsold ki egyesével a többi bővítményt, és válts egy alapértelmezett sablonra, hogy kiderüljön, nincs-e ütközés.

## 7. Fordulj a tárhelyszolgáltatóhoz

Ha nincs ütközés, az SMTP sem segít, vagy a naplóban a fenti hibák egyike szerepel, kérd meg a tárhelyszolgáltatót, hogy nézze át a kiszolgáló naplóit. Gyakran kiderül, hogy szándékosan blokkolnak valamit, vagy rosszul van beállítva a kiszolgáló.

## IP-feketelista

Ha egy IP-címet gyanús tevékenység (spam, kártevő terjesztése, jogosulatlan hozzáférés) miatt tiltólistára tesznek, a róla küldött levelek gyakran nem érik el a címzettet. Ez a levelezés kézbesíthetőségét és a hozzáférést is rontja. Ellenőrizhető a Spamhaus, az MXToolbox (IP-feketelista-ellenőrző) és a Barracuda keresőjével.

## E-mail-tartalom elemzése

Az elemzőeszközök a tárgyat, a szöveget és a formázást vizsgálják, és jelzik, ha túl sok a hivatkozás, spamszerű a szóhasználat, vagy furcsa a formázás. Egyes eszközök azt is megmutatják, hogy a különböző postafiókok hogyan kezelnék a levelet. Ilyen például a Mailshake és a Trustifi levélelemzője.

## SPF és DMARC beállítása

Az SPF és a DMARC rekord lehetővé teszi, hogy a fogadó levelezőkiszolgálók ellenőrizzék a feladó hitelességét. A rekordokat a tartomány DNS-beállításaiban kell megadni, a tartományregisztrátornál vagy a DNS-kezelő felületen. Hiányuk vagy hibás beállításuk miatt a levél spamnek minősülhet vagy elutasításra kerülhet. A DMARC nem kötelező, és nem minden kiszolgáló használja, de ha a levelezési megoldásod támogatja, érdemes beállítani.
