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:
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.
A végpont:
https://valami.dimail.hu/api/v1/send/message
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.