PHP Email küldés, olvasási visszaigazolás kérése
2021-05-31T07:01:49+02:00
2021-06-30T07:25:59+02:00
2022-08-12T03:30:32+02:00
GZolee79
Sziasztok!

Készítettem egy foglalási rendszert, ami foglalás esetén kiküld egy emailt a foglalónak phpMailer segítségével. 
Ez ez email egy html template-ből készül.
Azt szeretném, hogy az admin felületen látszódjon, hogy ha megnyitották a levelet.
(Pl. mint a Billingoban)

Először úgy képzeltem el, hogy a templete-be teszek egy javascriptet ami levél megnyitása esetén lefut és a szerveren átállít egy 0-t 1-re ami majd mutatja, hogy megnyitották az emailt.

Először teszteltem egy sima alert -tel de sajnos nem fut le amikor megnyitom. Gondolom a levelező biztonsági okokból kiszedi a javascriptet az emailből.

Tudnátok erre valamilyen megoldást javasolni? Milyen technikávalé szolták ezt csinálni?

Előre is köszönöm a segítséget!

Üdv:
Z.
Mutasd a teljes hozzászólást!
Billingónak nagy valószínűséggel saját smtp szervere van. onnan könnyen ki lehet nyerni a levelek státuszát.

hosting esetében többnyire ezt képpel tudod megtenni, de nem minden email kliens törti le a képeket engedély nélkül.
Mutasd a teljes hozzászólást!

  • Mutasd a teljes hozzászólást!
  • Billingónak nagy valószínűséggel saját smtp szervere van. onnan könnyen ki lehet nyerni a levelek státuszát.

    hosting esetében többnyire ezt képpel tudod megtenni, de nem minden email kliens törti le a képeket engedély nélkül.
    Mutasd a teljes hozzászólást!
  • Nem tudom.
    Az smtp nem küldésnél releváns?
    Ha megnyitok egy Billingo által küldött levelet a gmailban, akkor hogy játszik szerepet az SMTP szerver?
    Bocs, csak nem értem :)
    Mutasd a teljes hozzászólást!
  • Billingónak nagy valószínűséggel saját smtp szervere van. onnan könnyen ki lehet nyerni a levelek státuszát.

    Azt, hogy elment-e a levél azt igen, de hogy elolvasták-e, azt nem.

    Szögezzük le: nincs 100%-ban, minden esetben működő megoldás arra, hogy egy e-mail megnyitását feladó oldalról észlelni tudd. A bevált megoldások: rejtett, vagy nem rejtett kép, melynek letöltését naplózod (egyedi URL minden címzettnek), esetleg (és ez a jobb szerintem) a levélben csak hivatkozást küldesz az adott tartalomra, amit linkre kattintással tud megnyitni. Egy HTTP kérést már tudsz kedvedre naplózni.

    Témanyitó: a levélben legyen egy "foglalás megerősítése" link, melyre kattintással fogadd csak el a jelentkezést. Egyúttal megoldottad a megerősítést is, lenaplózod mikor, milyen IP-ről tenne.
    Mutasd a teljes hozzászólást!
  • Igen az smtp az küldésre szolgál, de a postfix,dovecot párosítást sok mindenre képes.

    Kiküldött leveleket a levelező szerver tárolja.

    annak a státuszát ki lehet olvasni.
    Mutasd a teljes hozzászólást!
  • Kiküldött leveleket a levelező szerver tárolja.

    Nem tárolja. Az SMTP ha továbbította, nem tárol semmit, nem feladata.

     annak a státuszát ki lehet olvasni.

    Csak annyit, hogy sikeresen átadta-e a fogadó szervernek.

    Arra, hogy a címzettnél megnyitották / elolvasták-e, az SMTP szervernek nincs rálátása.
    Mutasd a teljes hozzászólást!
  • Minden beállítás kérdése.
    Mutasd a teljes hozzászólást!
  • Nem, nem, és nem! Nem beállítás kérdése! Nincs 100%-ban működő és általános megoldás arra, hogy mint feladó, értesülést szerezz arról hogy egy e-mail üzenetet megnyitottak. Ha szerinted van, akkor írd le hogyan, mert addig csak értelmetlen szájkarate amit csinálsz.

    Update: kérlek jelöld meg azt is, hogy hány "éles" levelező szervert üzemeltetsz.
    Mutasd a teljes hozzászólást!
  • SimpleBreed.com - Breed them, sell them

    ez saját szerveren fut a Victor Hugo utcában.
    én a saját szerverem syslog-ját is felhasználom.
    Mutasd a teljes hozzászólást!
  • Hali!

    én a saját szerverem syslog-ját is felhasználom.

    És a saját szervered syslog-jában látod, hogy a kiküldött e-mailt megnyitotta/elolvasta a címzett? Vagy miért jó ez a példa, amit hoztál?

    Mutasd a teljes hozzászólást!
  • Köszi az ötleteket!

    Nem baj ha nem 100%-ban működik. Ha nagy százalékban az is jó :)
    Amúgy linket nem akarok használni, mert az a visszaigazolás a kifizet a foglaló egy kisebb előleget.

    Ez inkább csak azért kell, mert van beépítve egy olyan kód, ami automatikusan törli azokat a foglalásokat, amikre nem érkezett előleg.
    Ez foglaláskor is le van írva, meg az emailben is ami kimegy.
    Mégis van aki nem fizet, törlődik a foglalása, aztán meg azt mondja nem olvasta az emailt.

    Persze ezzel is csak azt látnám, hogy megnyitotta a levelet, nyilván az olvasást és megértést nem garantálja.
    Ezt a Billingoban nagyon jó megoldották, többnyire működik :)

    A kép betöldése jó lehet. Lehet erre fogok fókuszálni.
    Mutasd a teljes hozzászólást!
  • Abban igazad van, hogy magát a levél megnyitási adatait nem írja, csak, hogy kézbesítve van-e a levél 100%-osan.

    a szerver minden információt kiír a küldött levélről, mer amikor küldesz egy levelet akkor a fogadó szerver meggyőződik arról, hogy ki is küldte.

    A levél tényleges kézbesítése előtt a küldő és a fogadó szerver pinpong-ozik.

    Le ellenőrzi, hogy van-e digitális aláírás a levélben és azt is megnézi, hogy hozzá van-e rendelve szerverhez amiről küldik.

    többször is belép a szerverbe a fogadó szerver. A hosztot a domainkey-t is megnézi.

    Levelek tényleges státuszait csak src artibutummal lehet megnézni, de az sem 100%-os.

    mivel az src-ket több levelező szerver is blokkolja.

    Ki lehet kerülni, ha base64-et használsz a src-ben. és az egy svg amiben src lekérés van.
    Mutasd a teljes hozzászólást!
  • Hali!

    Ezt a Billingoban nagyon jó megoldották, többnyire működik :)

    Ott sem tudják „jobban” megoldani, ha a felhasználó nincs rákényszerítve valamilyen akcióra (pl. a már említett linkre kattintásra a tartalomért). A mai levelező-kliensek (legyen az webes vagy dedikált alkalmazás) esetében alapértelmezett, hogy felhasználói jóváhagyás kell bármilyen külső hivatkozás „megjelenítéséhez”.

    Nekem pl. küldhetsz bármelyik e-mail címemre, bármilyen e-mailt, soha nem fogsz értesülni arról, hogy olvastam (vagy akár csak megnyitottam). És ez így is van jól, ugyanis semmi közöd ahhoz, hogy elolvastam-e a leveledet vagy nem.

    Mutasd a teljes hozzászólást!
  • Persze, tudom, hogy ez nem mindig működik.
    El is mondtam annak aki ezt kéri tőlem.
    Az is érthető ha azt mondod semmi közöm hozzá, hogy olvastam e vagy nem.
    Csak mi van ha az van amit előzőleg írtam?
    Azért nem fizet, mert azt mondja, nem olvasta az emailt, közben meg törlődik a foglalása?
    Vagy ne foglalkozzak vele? Ha nem olvasta az Ő baja ? :)
    Mutasd a teljes hozzászólást!
  • Hali!

    Persze, tudom, hogy ez nem mindig működik.

    Inkább többnyire nem működik (legalábbis, alapbeállításokkal). Nem az van, hogy néha-néha nem értesülsz arról, hogy elolvasta (megnyitotta) a levelet, hanem inkább az, hogy néha-néha értesül(hetsz) arról.

    Az is érthető ha azt mondod semmi közöm hozzá, hogy olvastam e vagy nem.

    Ez inkább csak amolyan vicceskedés volt a részemről. Bocsi!

    Azért nem fizet, mert azt mondja, nem olvasta az emailt, közben meg törlődik a foglalása?

    Hívd fel a foglalás-oldalon a figyelmet erre (szembetűnő módon), azaz, hogy nézze a megadott e-mailjét az instrukciók miatt (esetleg még azt is írhatod, hogy a SPAM-mappát is nézze).

    Vagy ne foglalkozzak vele? Ha nem olvasta az Ő baja ?

    Ha kellően felhívtad a figyelmet erre, akkor igen, ne foglalkozz ezzel.

    Mutasd a teljes hozzászólást!
  • Hali!

    Inkább többnyire nem működik (legalábbis, alapbeállításokkal). Nem az van, hogy néha-néha nem értesülsz arról, hogy elolvasta (megnyitotta) a levelet, hanem inkább az, hogy néha-néha értesül(hetsz) arról.

    Valószínűleg így van. Én csak azt látom, hogy többnyire kinyílnak a borítékok a billingo felületén (Valóba nem mind : ) )

    Ez inkább csak amolyan vicceskedés volt a részemről. Bocsi! 

    Nem sértődtem meg nyugi.

    Hívd fel a foglalás-oldalon a figyelmet erre (szembetűnő módon), azaz, hogy nézze a megadott e-mailjét az instrukciók miatt (esetleg még azt is írhatod, hogy a SPAM-mappát is nézze).

    Benne van az ASZF-ben, megjelenik foglaláskor, megkapja emailben, mégis van olyan aki azt mondja nem olvasta , aztánmeg csak néz, hogy eltűnt a foglalása. 
    Akinek csináltam a rendszert, pont ezért szeretne ilyet. Meg látja a Billingoban, hogy van ilyen, éppen ezért gondolta, hogy meg lehet csinálni (jogosan :) ).

    Engem meg csak simán érdekel a technika most már.
    Mutasd a teljes hozzászólást!
  • Meglehetősen felületesek az ismereteid.

     a szerver minden információt kiír a küldött levélről, mer amikor küldesz egy levelet akkor a fogadó szerver meggyőződik arról, hogy ki is küldte.

    Ez egyáltalán nem igaz. Sőt, a helyzet az, hogy sajnos jelenleg is rengeteg (mondanám, hogy a többségi) levelező szerver nem használ olyan "alap" dolgokat mint az SPF, a DKIM vagy a DMARC. Ha használna, nem érkezne annyi SPAM, és nem lenne annyi phisling sem.

     A levél tényleges kézbesítése előtt a küldő és a fogadó szerver pinpong-ozik.

    Nem. Olvass utána hogyan működik az SMTP protokoll. Nincs ping-pong, nem pattog az üzenet oda-vissza. Simple Mail Transfer Protocol - Wikipedia

     Le ellenőrzi, hogy van-e digitális aláírás a levélben és azt is megnézi, hogy hozzá van-e rendelve szerverhez amiről küldik.

    Ez egyáltalán nem igaz. Lásd első bekezdésem a hozzászólásomban. Manapság még mindig nagyon sok olyan levelező szerver van ami kb. bármilyen levelet átvesz.

     többször is belép a szerverbe a fogadó szerver. A hosztot a domainkey-t is megnézi.

    A fogadó szerver soha, és semmilyen körülmények között nem "lép be" a küldő szerverre. Szép is lenne, ha csak úgy bármit tudna matatni ott egy idegen szerver... (Egyetlen kivétel van, amikor a feladó e-mail címének létezését próbálja meg egy technikai levélküldéssel ellenőrizni, de ez az eredeti levéllel nem összekapcsolható tevékenység, és viszonylag kevesen is használják.)

     Levelek tényleges státuszait csak src artibutummal lehet megnézni, de az sem 100%-os.

    Hülyeség. Ez is csak egy lehetőség. Megoldható pl. így is: Return receipt - Wikipedia

     mivel az src-ket több levelező szerver is blokkolja.

    A szervernek ehhez semmi köze. A szerver nem jelenít meg képeket. A levelező kliens esetleg, de ott ténylegesen beállítás kérdése a dolog, és eseti felhasználói öntésé is.

     Ki lehet kerülni, ha base64-et használsz a src-ben. és az egy svg amiben src lekérés van.

    Az SVG-be ágyazott külső erőforrásokat ugyanúgy tiltja egy valamire való levelező kliens, mint ha azok távoli képek vagy JS szkriptek lennének. Alap dolog.
    Mutasd a teljes hozzászólást!
  • Azt hiszem, hogy te nem vagy tisztában a levelezéssel. :D

    SPAM mappába miért teszi a fogadó szerver a levelet amelyik valamilyen protokollnak nem felel meg.

    Mert előtte ellenőrzi. vagyis szerver kérés válasz van a háttérben.(pinpong-ozik.)
    innen dönti el a szerver, hogy megfelel-e a levél az előírásoknak.

    a szervereket be lehet állítani, hogy minden egyes kapcsolatot logoljon.

    Szép lenne, ha nem lehetne, mert akkor a szerver gazdának lövése sem lenne, hogy honnan jöhet támadás.

    levél tartalmát is ellenőrzi, de előtte azt nézi, hogy a szerver amiről küldik a levelet ahhoz hozzá van-e rendelve valamilyen módon a küldő email

    vagy TXT vagy domain vagy bármilyen egyéb módon.

    Állítottam már be smtp szervert. tudom, hogy működik.

    Szép is lenne, ha csak úgy bármit tudna matatni ott egy idegen szerver.

    Nem bármit, de a szerver gazda adja meg, hogy mit láthat és mihez férhet hozzá egy külső szerver.
    Mutasd a teljes hozzászólást!
  • Na menjünk csak vissza az elejére: mutasd meg azt a megoldásod, amely mindig, minden körülmények között visszaigazolja neked azt a tényt hogy a levelet megnyitották / elolvasták. Mutasd, ne beszélj félre. Nincs ilyen megoldás, feleslegesen magyarázol. És a hibáid:

     SPAM mappába miért teszi a fogadó szerver a levelet amelyik valamilyen protokollnak nem felel meg.

    Egyáltalán nem biztos hogy van beállítva a fogadó szerveren bármilyen SPAM szűrés is. Ugyanígy nem biztos az sem hogy áthelyezi-e egy mappába, vagy egyszerűen eldobja / visszadobja. Mindez csak beállítás kérdése, amire neked, feladó oldalról semmilyen ráhatásod nincs.

     Mert előtte ellenőrzi. vagyis szerver kérés válasz van a háttérben.(pinpong-ozik.)

    A ping-pong azt jelenti oda-vissza pattig az üzenet. Ilyen nem történik, az üzenet nem pattog sehova. Az SMTP kommunikáció plain text alapú, hasonlóan az FTP-hez. Még a Wiki oldalt is belinkeltem neked hogy utána olvashass, pótold felületes ismereteid. Azt írod "előtte ellenőrzi", ami egyáltalán nem igaz, szintén a fogadó szerver beállításaitól függ mit és hogyan ellenőriz egyáltalán, amire neked feladó oldalról szintén semmilyen ráhatásod nincs.

     innen dönti el a szerver, hogy megfelel-e a levél az előírásoknak.

    Vagy nem. Már leírtam párszor, hogy ez nem a feladó oldalán zajlik, hanem a fogadóén.

     a szervereket be lehet állítani, hogy minden egyes kapcsolatot logoljon.

    Természetesen. De azt nem tudod naplózni 100%-osan, hogy megnyitották-e a levelet. Ha naplózni tudod is (IMAP-al lehet, POP-nál a letöltést tudod figyelni, Exchange alatt is szerintem lehet a megnyitás tényét naplózni), ez a napló akkor is a fogadó oldalon lesz. A feladó ebből semmit nem vesz észre, hogyan látna rá? A kérdés pedig erről szól, hogy a feladó kapjon visszajelzést.

     Szép lenne, ha nem lehetne, mert akkor a szerver gazdának lövése sem lenne, hogy honnan jöhet támadás.

    Nem releváns a kérdés tekintetében. Nem kiber-biztonságról szól a téma.

     levél tartalmát is ellenőrzi, de előtte azt nézi, hogy a szerver amiről küldik a levelet ahhoz hozzá van-e rendelve valamilyen módon a küldő email

    Ez megint csak feltételezés. Egyáltalán nem biztos hogy így van. Ahogy már nem tudom hányszor leírtam: ez a fogadó oldalon történik, ha történik. Erre neked feladó oldalról kb. semmilyen rálátásod sincs (csak akkor van ha visszautasítja valami miatt a levelet).

     vagy TXT vagy domain vagy bármilyen egyéb módon.

    Vagy igen, vagy nem. Írtam is: nem mindenki használja az SPF / DKIM / DMARC-ot.

     Állítottam már be smtp szervert. tudom, hogy működik.

    Nem, láthatóan nem tudod. A fogadó szerveren elvégzett műveletekre hivatkozol egy olyan témában, amikor a küldő (feladó) oldalon kellene meggyőződni olyan dologról (levél megnyitása / elolvasása) amire annak semmilyen rálátása nincs.

     Nem bármit, de a szerver gazda adja meg, hogy mit láthat és mihez férhet hozzá egy külső szerver.

    Jelen esetben mutasd meg kérlek, hogyan tudod elkérni egy fogadó levelező (idegen) szervertől azt az információt, hogy egy korábban általad elküldött levelet megnyitottak-e. Mutasd, amit ugye nem tudsz, mert ilyet nem lehet. Feleslegesen erőlködsz.
    Mutasd a teljes hozzászólást!
  • Nem érted a lényeget, vagy értelmezési problémáid vannak.

    Olvasd el az összes bejegyzést.
    Mutasd a teljes hozzászólást!
  • Ezt Te írod Nekem? Te nem érted a lényeget: a téma arról szól, hogy a feladó (küldő) oldalon detektáljuk, hogy egy levelet a fogadó oldalon megnyitottak / olvastak-e. Erre keresünk olyan megoldást ami állításod szerint létezik, de megmutatni nem tudtad, csak jössz mindenféle e-mail ellenőrzési dolgokkal és szerver naplókkal. Ezek mind olyan információk amik a probléma megoldását illetően irrelevánsak, hiszen a fogadó szerverre nincs ráhatásod, bárhol lehet bármilyen beállítással. A feladat szempontjából mi küldők vagyunk, erről az oldalról kell(ene) detektálni, ha lehetne.
    Mutasd a teljes hozzászólást!
  • Hali!

    Nem érted a lényeget…

    Én értem a témanyitó problémáját (annak lényegét), de te levezetésedet (ill. annak relevanciáját a topikhoz) nem nagyon.

    Küldök neked egy e-mailt és szeretném megtudni, hogy te azt az e-mailt elolvastad-e (megnyitottad-e). Erre ma nemhogy 100%-os megoldás nem létezik, de (főleg a mai szoftverek alapbeállításai miatt) nagyon gyenge hatásfokú megoldások lehetségesek csak. Különösen, ha felhasználói beavatkozás nélküli – értsd: linke kattintós, külső hivatkozásokat engedélyezős, stb. – megoldást szeretnél.

    Mint ahogy írtam korábban GZolee79-nek is, küldhetsz te nekem bármelyik e-mail címemre, bármilyen szerver-beállítással, bármilyen (bármit tartalmazó) e-mailt, soha nem fogsz értesülni arról, hogy én elolvastam/megnyitottam azt. Pedig ő pontosan ezt szeretné, azaz, a foglaló-rendszere kiküldi az e-mailt a foglaló személynek a foglalásról, ő pedig szeretne arról értesülni, hogy a foglaló személy elolvasta/megnyitotta azt.

    Vagy esetleg te tudsz erre megoldást? Mert arra én (is) kíváncsi lennék.

    Mutasd a teljes hozzászólást!
  • Én a kérdező válaszára írtam, hogy a billingo valószínűleg saját szervert használ. ezért sokkal több megoldást tudnak használni, mint azok akik hosting szerveren vannak.

    Kérdező nézzen utána ennek a 2 szónak.

    seen
    unseen

    fog találni php imap megoldásokat.
    Mutasd a teljes hozzászólást!
  • szerintem ezt te nem olvastad
    https://prog.hu/tarsalgo/211891/php-email-kuldes-olvasasi-visszaigaz..



    Én egy szóval sem írtam, hogy maga a levél pinpong-ozik.

    Én csak a szerverek kommunikációjáról beszéltem.

    valószínűleg a wikipédia nem igazán fejti ki, mi lehetséges és mi nem.

    csak azért, mert ott nincs valami leírva az nem azt jelenti, hogy nem lehet megoldani.
    Mutasd a teljes hozzászólást!
  • valószínűleg a wikipédia nem igazán fejti ki, mi lehetséges és mi nem.

    csak azért, mert ott nincs valami leírva az nem azt jelenti, hogy nem lehet megoldani.

    A mellébeszélés helyett mutasd meg hogyan lehet elkérni egy idegen szervertől egy adott levél olvasott / nem olvasott státuszát. Erről szól a téma. Várom a megoldásod, ami ugye nem létezik.

     fog találni php imap megoldásokat.

    Te most egy idegen szerveren, a fogadó szerveren, más fiókjában akarsz kotorászni?
    Mutasd a teljes hozzászólást!
  • Billingo

    Chimpmail-ról küldi

    levelek aljában van egy img tag ami vissza jelez, ha megnyitják.


    <img src=3D"https://billingo.us9.list-manage.com/track/open.php?u=3D598=
    1bbbcbef3065ae25e7ba29&id=3D474b1d6b21&e=3D3c212cde74" height=3D"1" width=
    =3D"1">
    Mutasd a teljes hozzászólást!
  • Hali!

    Én a kérdező válaszára írtam, hogy a billingo valószínűleg saját szervert használ. ezért sokkal több megoldást tudnak használni, mint azok akik hosting szerveren vannak.

    De tök mindegy, hogy milyen szervert, milyen beállításokkal használ a Bilingo. Más szerverre (pl. a céges szerverünkre, de akár a Google-szerverekre sem) nincs hatása ennek. Küldhet nekem bármilyen e-mailt a Bilingo, soha nem fognak arról értesülni, hogy megnyitottam/elolvastam. És még csak semmi speciális beállítás nem kell, sem a levelező-szervereinkben, sem az e-mail klienseken, amiket használok.

    levelek aljában van egy img tag ami vissza jelez, ha megnyitják.

    Na, de éppen ez a lényeg: akkor jelez csak vissza, ha a levelező-kliens megnyitja/megjeleníti a külső hivatkozásokat (a példádban az img-t). De ma már alapesetben ez tiltva van szinte minden e-mail kliensben, és minimum felhasználói beavatkozás (engedélyezés) szükséges, hogy megjelenítse a külső hivatkozásokat. Ha pedig nem jeleníti meg, nem értesül a feladó arról, hogy megnyitották/olvasták a levelet. Nálam pl. ez semmit sem érne, és (ismétlem) még csak nem is kell(ett) semmit beállítanom sem a Thunderbird-ben, sem a GMail webes felületén, mert alapból nem jelenítik meg.

    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Bocs, kicsit szünetlettem a programozói tevékenységemet. Most néztem vissza a a lezáratlan témáimra.
    Szóval úgy néz ki ennél a képbetöltétésnél nem tudok jobbat találani, még ha nem is 100%- os.
    Így ezt veszem megoldásnak. 
    Megnézem ki javasolta ezt először és az Ő válaszát jelölöm megoldásnak.
    De a többiektől is sok hasznos választ kaptam.

    Köszi mégegyszer!

    Z.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd