Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: mr.p 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í?
-
je to jedine logicke reseni
-
Je nejaky duvod, proc neveris navratovemu kodu (resp. vyhozeni vyjimky) u odesilaci fce?
-
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.
-
to je vsechno v tech logach
-
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:
grep 'postfix/smtp\[.*status=' /var/log/mail.log
Protože řádek v logu, který mě zajímá vypadá takto:
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ý.
-
Anebo si napsat vlastní e-mailový klient ...
-
co treba pouzit pflogsum ????