Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jak kontrolovat zda byl email odeslán  (Přečteno 2687 krát)

mr.p

  • Návštěvník
  • Příspěvků: 89
Jak kontrolovat zda byl email odeslán
« kdy: 29 Března 2015, 13:40:17 »
Zdravím,

na serveru mi běží webová aplikace, která odesílá emaily. Chtěl bych tu appku rozšířit ještě o kontrolu zda by email opravdu odeslán ze serveru.

Zatím mě napadlo pouze jediné řešení. A to takové, že bych parsoval mail.log a vytáhl si tak info pro konkrétní email.

Je tohle dobrá cesta nebo existuje i jiné lepší řešení?

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #1 kdy: 29 Března 2015, 13:57:33 »
je to jedine logicke reseni
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

donny

  • Závislák
  • ***
  • Příspěvků: 1861
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #2 kdy: 29 Března 2015, 21:57:48 »
Je nejaky duvod, proc neveris navratovemu kodu (resp. vyhozeni vyjimky) u odesilaci fce?
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #3 kdy: 02 Dubna 2015, 17:33:35 »
Je nejaky duvod, proc neveris navratovemu kodu (resp. vyhozeni vyjimky) u odesilaci fce?

No funkce mail v php totiž vrací jen boolean hodnotu zda se mu podařilo dokončit operaci (tedy předání dat emailovému klientovi). Já bych chtěl vědět, zda email byl odeslán ze serveru nebo jestli byl odmítnut druhou stranou jako neexistující apod.

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #4 kdy: 02 Dubna 2015, 17:37:12 »
to je vsechno v tech logach
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #5 kdy: 02 Dubna 2015, 18:18:06 »
Ano, jenže od doby co jsem sem psal, tak jsem neměl pořádně čas se na to kouknout.

Co jsem zatím vymyslel jako řešení tak napsat jednoduchý bash script a dát ho do cronu, který grepem vytáhne řádky, který hledám, ty zapsat do souboru a v php pak parsovat ten soubor. Musel by samozřejmě kontrolovat datum, kdy byl spuštěn naposled, abych netahal stejný řádky znova.

Zatím mám jen tohle:
Kód: [Vybrat]
grep 'postfix/smtp\[.*status=' /var/log/mail.logProtože řádek v logu, který mě zajímá vypadá takto:
Kód: [Vybrat]
Apr  2 18:03:59 vm11268 postfix/smtp[28432]: 3A532735: to=<example@seznam.cz>, relay=mx1.seznam.cz[77.75.76.42]:25, delay=2.2, delays=0.07/0.01/1/1.1, dsn=2.0.0, status=sent (250 2.0.0 Mail 44697760 queued for delivery in session 70a500000062.)
Akorát mě trápí, že to vytáhne celý řádek. Jak bych to měl udělat, aby text, který nechci zahodil?

Ještě jsem koukal na sed. Ten by mohl být taky použitelný.
« Poslední změna: 02 Dubna 2015, 18:28:05 od mr.p »

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #6 kdy: 08 Dubna 2015, 14:49:26 »
Anebo si napsat vlastní e-mailový klient ...
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Jak kontrolovat zda byl email odeslán
« Odpověď #7 kdy: 08 Dubna 2015, 16:19:54 »
co treba pouzit pflogsum ????
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

 

Provoz zaštiťuje spolek OpenAlt.