Menedzselt SMTP szolgáltatás

Ha valaha is szembesültél azzal a problémával, hogy az alkalmazásod vagy weboldalad által küldött e-maileket nem tudod, hogy megkapta-e a címzett, elvesznek, spam mappába kerülnek, vagy egyszerűen csak fogalmad sincs, mi történt velük a „Küldés” gomb megnyomása után, akkor előnyödre válhat a menedzselt SMTP szolgáltatásunk.

Ez a szolgáltatás arra a legjobb, hogy levegye a válladról a saját levelezőszerver üzemeltetésének minden nyűgét. Gondolj csak bele, nem kell többé aggódnod a visszapattanó levelek, a szolgáltatói korlátozások vagy a kézbesíthetőségi mutatók (deliverability) miatt. Mi egy robusztus, nagy teljesítményű és megbízható infrastruktúrát biztosítunk, amelynek minden egyes elemét folyamatosan monitorozzuk és karbantartjuk. A rendszer alapját egy rendkívül fejlett, nyílt forráskódú levelezőszerver-platform adja, amelyet kifejezetten a nagy volumenű, nyomon követhető levélküldésre terveztek.

Célunk, hogy egy olyan eszközt adjunk a kezedbe, amellyel a levélküldés egy átlátható, kereshető és megbízható folyamattá válik, nem pedig egy fekete dobozzá. Lássuk, hogyan is működik ez a gyakorlatban!

Első lépések, hitelesítés

Mielőtt egyetlen levelet is elküldenél, gondoskodnunk kell arról, hogy a világ levelezőszerverei megbízzanak benned. Ez a hitelesítés folyamata, ami elengedhetetlen a magas kézbesíthetőséghez.

A küldő szerver létrehozása

A szolgáltatás használatához először létre kell hozni egy „Küldő szervert” (Mail Server) a vezérlőpulton keresztül. Ez egy logikai egység, amely egy adott domainhez vagy projekthez tartozó összes levélküldést kezeli. Itt állíthatsz be mindent, a hitelesítéstől kezdve az API kulcsokig. Az SMTP szolgáltatás megrendelése esetén az előre megadott adatokkal létrehozunk egyet, de ez igény szerint módosítható vagy törölhető.

A domain hitelesítése

Ahhoz, hogy a nevedben (a te domaineddel) küldött leveleket a fogadó szerverek (Gmail, Outlook stb.) ne tekintsék hamisítványnak, igazolnod kell, hogy a domain valóban a tiéd, és engedélyt adtál a mi rendszerünknek a levélküldésre. Ehhez több DNS rekordot kell beállítanod a domain szolgáltatódnál. A vezérlőpult pontosan leírja, milyen néven, milyen típusú rekordot hozz létre és milyen értékkel.

  • SPF (Sender Policy Framework): Ez egy TXT típusú DNS rekord, amely felsorolja azokat a szervereket (IP címeket), amelyek jogosultak az adott domain nevében e-mailt küldeni.

  • DKIM (DomainKeys Identified Mail): A rendszer minden egyes általad küldött levelet ellát egy egyedi digitális aláírással. Ennek az aláírásnak a nyilvános kulcsát egy TXT rekord formájában közzéteszed a DNS-ben. A fogadó szerver ellenőrzi az aláírást a nyilvános kulcsoddal, és ha egyezik, 100%-ig biztos lehet benne, hogy a levél valóban tőled származik, és útközben nem módosították.

  • Return-Path (Visszatérési Cím): Ezt a címet használja a rendszer a visszapattanó levelek (bounce) kezelésére. Egy egyedi aldomaint (pl. psrp.sajatdomained.hu) kell létrehoznod, amely a mi szervereinkre mutat (CNAME rekord). Így minden visszapattanó levél automatikusan a mi rendszerünkbe érkezik vissza, ahol azonnal feldolgozzuk és naplózzuk az eseményt a vezérlőpulton. Így te azonnal látni fogod, például ha egy cím már nem létezik.

  • DMARC (Domain-based Message Authentication, Reporting, and Conformance): Bár nem minden esetben kötelező, erősen ajánlott. Ez a rekord határozza meg, hogy a fogadó szerverek mit tegyenek azokkal a levelekkel, amelyek megbuknak az SPF vagy DKIM ellenőrzésen. Emellett riportokat is kérhetsz arról, hogy ki és honnan próbál a domained nevében levelet küldeni.

Amint ezeket a rekordokat beállítottad, a vezérlőpult automatikusan ellenőrzi őket, és ha mindent rendben talál, zöld pipával jelzi, hogy készen állsz a levélküldésre.

Levélküldés SMTP-vel

Szinte minden programozási nyelvhez és keretrendszerhez létezik megbízható könyvtár, amely támogatja az SMTP-vel való levélküldést.

A szolgáltatásunk teljes körű SMTP hozzáférést biztosít. A vezérlőpulton, a küldő szervered adatlapján megtalálod a szükséges belépési adatokat:

  • Szerver (Host): valami.dimail.hu

  • Port: 25, 587 (TLS titkosítást használ a STARTTLS parancs után)

  • Felhasználónév: A rendszer által generált egyedi azonosító (pl. szervezet/szerver)

  • Jelszó: A rendszer által generált, biztonságos jelszó

Gyakorlati példa PHP-val (PHPMailer könyvtárral):

Tegyük fel, hogy a népszerű PHPMailer könyvtárat használod az alkalmazásodban. A beállítása rendkívül egyszerű:

// ...
try {
    // Szerver beállítások
    // $mail->SMTPDebug = SMTP::DEBUG_SERVER; // Bekapcsolhatod a részletes hibakereséshez
    $mail->isSMTP();
    $mail->Host = 'smtp.dima.hu';
    $mail->SMTPAuth = true;
    $mail->Username = 'a-te-szervered/a-te-tokened'; // Ezt másold a vezérlőpultból!
    $mail->Password = 'a-te-jelszavad'; // Ezt is a vezérlőpultból!
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;

    // Címzettek
    $mail->setFrom('[email protected]', 'Feladó Neve');
    $mail->addAddress('[email protected]', 'Címzett Neve'); // A címzett
    $mail->addReplyTo('[email protected]', 'Információ');
// ...
}

Az SMTP előnye, hogy univerzális és könnyen integrálható a meglévő rendszerekbe, amelyek már most is így küldenek levelet. Egyszerűen csak át kell írnod a belépési adatokat.

Levélküldés HTTP API-val

A modern, API-vezérelt alkalmazások számára a HTTP API egy sokkal rugalmasabb és bőbeszédűbb alternatívát kínál. Egyszerűen egy HTTP POST kérést küldesz egy végpontra egy JSON formátumú tartalommal a levélküldéshez.

Miért jobb az API?

  • Strukturált adatok: A levél minden elemét (címzett, feladó, tárgy, HTML és szöveges tartalom, mellékletek) egyetlen, jól strukturált JSON objektumban adhatod át.

  • Azonnali visszajelzés: A kérésre azonnali, részletes választ kapsz, beleértve a sikeresen befogadott levél egyedi azonosítóját is.

  • Nincs szükség speciális könyvtárra: Egy egyszerű cURL kéréssel vagy bármilyen HTTP klienssel használható.

Az API használata:

  1. API kulcs generálása: A Küldő Szervered beállításainál, a vezérlőpulton belül generálj egy új API kulcsot (Credential). Ez lesz a „jelszavad” az API-hoz.

  2. A végpont: https://valami.dimail.hu/api/v1/send/message

  3. A kérés összeállítása: Egy POST kérést kell küldened a fenti végpontra, amelynek a X-Server-API-Key fejlécében megadod az API kulcsodat, a kérés törzse pedig egy JSON objektum.

Gyakorlati példa cURL paranccsal:

curl -X POST https://valami.dima.hu/api/v1/send/message \
-H "X-Server-API-Key: a-te-api-kulcsod" \
-H "Content-Type: application/json" \
-d '{
"to": ["[email protected]"],
"from": "[email protected]",
"subject": "Tesztlevél a HTTP API-n keresztül",
"plain_body": "Szia! Ez egy egyszerű, szöveges levél az API-ból.",
"html_body": "<h1>Szia!</h1><p>Ez egy <b>HTML</b> levél az API-ból.</p>",
"attachments": [
{
"name": "teszt.txt",
"content_type": "text/plain",
"data": "SGVsbG8gV29ybGQh" // "Hello World!" base64 kódolással
}
]
}'

Fontosabb JSON paraméterek:

  • to: Címzettek listája (tömb). Formátum: ["nev <[email protected]>", "[email protected]"]

  • from: A feladó címe. Formátum: "Név <[email protected]>"

  • cc, bcc: Másolat és titkos másolat címzettjei (tömbök).

  • subject: A levél tárgya.

  • plain_body: A levél egyszerű szöveges tartalma.

  • html_body: A levél HTML formátumú tartalma. Erősen ajánlott mindkettőt megadni.

  • attachments: Mellékletek listája. Minden melléklet egy objektum, amely tartalmazza a fájl nevét (name), a MIME típusát (content_type) és a base64 kódolt tartalmát (data).

Sikeres küldés esetén a rendszer egy JSON válasszal tér vissza, amely tartalmazza a levél egyedi azonosítóját (message_id), amellyel később hivatkozhatsz rá.

A levelek életútjának nyomon követése

A vezérlőpulton keresztül minden egyes elküldött levél sorsát végigkövetheted.

A főoldalon láthatod az összesített statisztikákat, de az igazi ereje a részletes keresőben és a levelek adatlapjában rejlik.

Keresés és Szűrés

A „Messages” (Levelek) fülön lehetőséged van keresni és szűrni a kimenő forgalomban:

  • Kereshetsz címzettre (to:), feladóra (from:), vagy tárgyra (subject:).

  • Szűrhetsz a levél állapota szerint (pl. csak a visszapattantakat vagy a spam panaszosakat mutassa).

  • Kereshetsz a levél egyedi azonosítója (message_id) alapján.

Egy levél részletes adatlapja

Ha rákattintasz egy levélre a listában, megnyílik annak részletes adatlapja, ahol mindent megtalálsz:

  • Timeline (Idővonal): A legfontosabb rész. Itt láthatod kronologikus sorrendben a levéllel kapcsolatos összes eseményt:

    • Accepted: A rendszer sikeresen fogadta a küldési kérésedet (SMTP-n vagy API-n).

    • Sent: A rendszer sikeresen továbbította a levelet a cél szerver felé. Itt láthatod a pontos időpontot és a fogadó szerver válaszát is.

    • Delivered: A fogadó szerver sikeresen kézbesítette a levelet a címzett postafiókjába.

    • Opened: A címzett megnyitotta a levelet (egy láthatatlan követő pixel segítségével).

    • Clicked: A címzett rákattintott egy linkre a levélben (ha a linkkövetés be van kapcsolva).

    • HardBounce: A levél visszapattant, mert a cím nem létezik, vagy a domain érvénytelen. A rendszer az ilyen címeket automatikusan egy tiltólistára teszi, hogy legközelebb már ne is próbáljon meg levelet küldeni nekik, ezzel védve a küldési hírnevedet.

    • SoftBounce: A levél átmenetileg visszapattant, mert például a címzett postafiókja megtelt. A rendszer ilyenkor később újra megpróbálja a kézbesítést.

    • SpamComplaint: A legrosszabb forgatókönyv. A címzett manuálisan spamnek jelölte a leveledet. Ezt nagyon komolyan kell venni. A rendszer az ilyen címeket is azonnal tiltólistára helyezi.

  • Details (Részletek): Itt láthatod a levél alapadatait: feladó, címzett, tárgy, méret, egyedi azonosítók.

  • Plain Text / HTML / Raw: Megtekintheted a levél pontos tartalmát, ahogyan az elküldésre került. A „Raw” nézet a levél teljes forráskódját mutatja, beleértve az összes fejlécet, ami hibakeresésnél aranyat ér.

Beavatkozási lehetőségek

Nem csak megfigyelő vagy, hanem aktívan is beavatkozhatsz:

  • Retry (Újraküldés): Ha egy levél kézbesítése valamiért meghiúsult (pl. átmeneti hiba miatt), egyetlen gombnyomással újrapróbálhatod a kézbesítését.

  • Suppressions (Tiltólisták): Itt kezelheted a visszapattant és spam panaszos címek listáját. Ha tudod, hogy egy cím időközben újra érvényessé vált, manuálisan eltávolíthatod a tiltólistáról.

Haladó funkciók és bevált gyakorlatok

  • Webhooks: Ahelyett, hogy folyamatosan a vezérlőpultot nézegetnéd, a rendszer proaktívan is értesíthet téged. Beállíthatsz egy webhook URL-t, ahova a rendszer minden fontos eseményről (kézbesítés, visszapattanás, megnyitás, kattintás, spam panasz) egy HTTP POST kérést küld valós időben. Így például automatikusan frissítheted a saját CRM rendszeredben egy felhasználó állapotát, ha visszapattant a regisztrációs e-mailje.

  • Sender Reputation: A sikeres kézbesítés kulcsa a jó hírnév. Ezt a domain és a küldő IP cím hírneve együttesen határozza meg. A te feladatod, hogy csak olyanoknak küldj levelet, akik ezt kérték, és a tartalmad releváns legyen számukra. A magas visszapattanási és spam panasz arány rontja a domained hírnevét, ami hosszú távon kézbesítési problémákhoz vezethet. A vezérlőpult statisztikái segítenek szemmel tartani ezeket a mutatókat. Fontos megjegyezni, hogy levélszemét küldés miatt csökkent IP reputáció miatt nem áll módunkban új IP-t biztosítani a számodra.

  • Linkre kattintások és megnyitások követése: A Küldő Szerver beállításainál engedélyezheted ezeket a funkciókat. A rendszer ekkor minden linket a levélben egy egyedi, követő URL-re cserél, a levél végére pedig beilleszt egy 1×1 pixeles, láthatatlan képet. Ezek segítségével tudja mérni a kattintásokat és megnyitásokat.