# MailAudit: levélkézbesítés tesztelése

> A MailAudit egy egyedi tesztcímre küldött levélből megmutatja, hogy az SPF, a DKIM, a DMARC, a spamszűrés, a feketelista és az rDNS rendben van-e.

A **MailAudit** (mailaudit.io) levélkézbesítést tesztelő webes szolgáltatás. Egy egyedi tesztcímre küldesz levelet a saját szerveredről, és megkapod az elemzést: miért menne spamba, vagy miért nem érkezik meg. WordPress-oldalnál ezzel derül ki, hogy az űrlapok, a jelszó-visszaállítás és a rendelési értesítők levelei megfelelnek-e a fogadó szerverek elvárásainak.

## Mit ellenőriz

A főoldal hat ellenőrzést sorol fel:

| Ellenőrzés | Mit vizsgál |
|---|---|
| **SPF** | Jogosult-e a küldő szerver a domain nevében levelet küldeni. |
| **DKIM** | Érvényes-e a levél digitális aláírása. |
| **DMARC** | Mit ír elő a domain szabályzata, ha a hitelesítés elbukik. |
| **SpamAssassin** | A spamszűrő pontszáma, részletezve. |
| **Blacklist** | A küldő IP-címe vagy domainje rajta van-e a 32 ellenőrzött feketelista valamelyikén. |
| **rDNS** | Az IP-cím fordított DNS-bejegyzése és a HELO-köszönés. |

## Használat lépésenként

1. Nyisd meg a [mailaudit.io](https://mailaudit.io/) főoldalt. A **Send an email to this address:** felirat után a rendszer automatikusan létrehoz egy egyedi címet (amíg készül, **Generating...** áll ott).
2. Másold ki a címet, és küldj rá egy levelet a saját szerveredről. Ugyanonnan küldd, ahonnan az éles leveleid mennek, mert a teszt a küldő szervert méri.
3. Várd meg az elemzést, majd olvasd el az eredményt és a pontszámot.

A főoldal szerint az elemzés a levél beérkezése után 5 másodpercen belül kész van. A teszt a következő szakaszokon megy végig: levél fogadása, SPF, DKIM, DMARC, feketelista, SpamAssassin, tartalomelemzés, pontszámítás. Az oldal a tesztcímek lejáratát nem írja le a felületen, az API-leírás szerint viszont a tesztcím egy óráig érvényes, ezért a címet közvetlenül használat előtt generáld.

A főoldal a tesztcímet belépés nélkül mutatja; regisztrációról a felület nem ír. Az API-hoz kulcs kell (lásd lent).

## Az eredmény értelmezése

A MailAudit az eredményt 0 és 10 közötti pontszámmal adja (az API `score` mezője). Ellenőrzésenként ezt érdemes nézni:

- **SPF:** hibát akkor kapsz, ha a küldő szerver IP-címe nincs a domain SPF-rekordjában. Javítás: vedd fel a szervert, vagy a levélküldő szolgáltatás `include:` bejegyzését a DNS-ben lévő TXT rekordba.
- **DKIM:** hibát akkor kapsz, ha a levél nincs aláírva, vagy az aláírás nem egyezik a DNS-ben közzétett kulccsal. Javítás: kapcsold be az aláírást a levélküldő szolgáltatónál, és add hozzá a kapott DKIM-rekordot a DNS-hez.
- **DMARC:** a domain szabályzatát mutatja. Ha nincs DMARC-rekord, vagy az SPF és a DKIM sem illeszkedik a feladó domainjéhez, a szabályzat nem tud működni.
- **SpamAssassin:** minél magasabb a pontszám, annál inkább spamnek tűnik a levél. A részletezés megmutatja, mely szabályok adtak pontot, ezeket a levél tartalmában vagy a fejlécében lehet javítani.
- **Blacklist:** ha a küldő IP vagy domain szerepel valamelyik listán, az eredmény megnevezi a listát. Törlést a lista üzemeltetőjétől kell kérni.
- **rDNS:** az IP-címhez tartozó PTR-rekordnak és a szerver HELO-nevének egyeznie kell a szerver nevével. A PTR-rekordot a szerver szolgáltatója állítja be.

Az oldal tudásbázisa (**Email Knowledge Base**, a főoldalon a **Authentication**, **Deliverability**, **Technical**, **Security** szűrőfülekkel) mindegyik fogalmat külön magyarázza. A hibák kijavítása után küldj új tesztlevelet, és hasonlítsd össze a két eredményt.

## WordPress-oldal tesztelése

Az oldal a leveleit a `wp_mail()` függvénnyel küldi, ezt használja a jelszó-visszaállítás, az űrlapbővítmények és a WooCommerce is. A tesztcímre többféleképp küldhetsz:

1. **Jelszó-visszaállítás.** Hozz létre (vagy módosíts) egy felhasználót, akinek az e-mail-címe a MailAudit tesztcíme, majd a belépőoldalon kérj jelszó-visszaállítást ehhez a felhasználóhoz.
2. **WooCommerce-rendelés.** Tesztrendelést a tesztcímmel add le, így az értesítő levél oda megy. Éles boltban ne csinálj tesztrendelést.
3. **SMTP-bővítmény tesztküldője.** A legtöbb SMTP-bővítmény tud tesztlevelet küldeni egy általad megadott címre. Add meg a MailAudit címét.
4. **WP-CLI.** Bedrock-oldalon a `web` könyvtárból:

```bash title="Terminál"
wp eval 'var_dump( wp_mail( "TESZTCIM@mailaudit.io", "Teszt", "Tesztlevél" ) );'
```

A `TESZTCIM@mailaudit.io` helyére a főoldalon generált címet írd. Az eredmény `bool(true)`, ha a WordPress átadta a levelet a küldésnek, ez azonban még nem jelenti, hogy meg is érkezett: a kézbesítést a MailAudit mutatja.

### Tipikus hibák

- **Az SPF-ben nincs benne a szerver.** A levél a tárhely szerveréről megy, de a DNS-ben az SPF-rekord csak a külső szolgáltatót (például a levelezőrendszert) engedi. Vedd fel a küldő szervert is, de egy domainhez csak egy SPF-rekord lehet.
- **Hiányzó DKIM.** A WordPress alapból aláíratlanul küld. Használj SMTP-bővítményt vagy levélküldő szolgáltatást, amely aláír, és tedd közzé a kulcsot a DNS-ben.
- **A feladó címe idegen domainen van.** Ha a „Feladó” cím domainje nem egyezik a küldő szerverével, az SPF és a DKIM nem illeszkedik, a DMARC pedig elbukik.
- **Hiányzó PTR-rekord.** Az rDNS-hibát a szerver szolgáltatójánál kell javíttatni.

## API és egyéb eszközök

Az oldal API-t is kínál (`https://api.mailaudit.io/api/v1`), a leírása az [API-dokumentációban](https://mailaudit.io/api-docs) van. Az API-kulcshoz regisztráció kell, a kulcsot az irányítópulton lehet létrehozni. A tesztcím generálása (`POST /test/generate`) és az eredmény lekérdezése (`GET /test/{testId}`) is elérhető, így a tesztet szkriptből vagy CI-ból is futtathatod. Vannak külön lekérdezések az MX-rekordra, a feketelistára és a domain hírnevére is. A kulcsra 60 kérés/perc és 1000 kérés/nap korlát vonatkozik. A kulcsot ne tedd böngészőben futó kódba.

A feketelistákat és a DNS-rekordokat más eszközzel is ellenőrizheted, lásd az [MXToolbox](https://hub.hellowp.io/hu/knowledge-base/useful-tools/mxtoolbox/) cikkét. Ha fejlesztés közben csak a levél tartalmát és fejlécét akarod látni, a [Mailpit](https://hub.hellowp.io/hu/knowledge-base/developer-tools/mailpit/) a helyi környezetben erre való.

## Mire figyelj

- A teszt a küldő szervert méri, ezért ugyanonnan küldj, ahonnan az éles levelek mennek.
- A tesztcímre ne küldj valódi ügyféladatot tartalmazó levelet: használj kitalált tartalmat.
- DNS-módosítás után várd meg a terjedést, és csak aztán küldj új tesztet.

## Hasznos linkek

- [MailAudit](https://mailaudit.io/)
- [API-dokumentáció](https://mailaudit.io/api-docs)
- [Email Knowledge Base](https://mailaudit.io/guide)
- [SMTP-hibakódok](https://mailaudit.io/guide/smtp-errors)
- [wp_mail() a WordPress fejlesztői dokumentációjában](https://developer.wordpress.org/reference/functions/wp_mail/)
