Posielanie logov emailom s vynimkou v prilohe
- tomolas
- Člen | 66
Zdravim,
chcel by som si z produkcneho serveru nechat posielat maily ked nieco
havaruje.
Docital som sa o tejto moznosti:
<?php
Debug::enable(Debug::DETECT, '%logDir%/php_error.log', 'admin@example.com');
?>
Toto u mna nie je mozne pouzit, lebo mail funguje len cez smtp s autentifikaciou. Aka je prosim finta na to, aby mi mailom prislo upozornenie a aj vynika (napr. exception 2011–02–28 08–22–01 0ce5e6e8900256e0e6a546726cc4e354.html) v prilohe?
Vie niekto poradit?
Diki moc!
- Tharos
- Člen | 1030
Výchozí mailer ve třídě Debug
používá PHP funkci
mail()
, která si s SMTP autentizací neporadí, ale mailer
můžeš nahradit svým. Měl by fungovat kód:
Debug::$mailer = array('SmtpMailer', 'sendMail'); // SmtpMailer je nějaká Tvá vlastní třída
Inspiraci k implementace metody sendMail
můžeš nabrat zde.
Editoval Tharos (28. 2. 2011 9:03)
- jtousek
- Člen | 951
Kdysi jsem to řešil, nakonec jsem se dobral k tomu, že výjimku ukládám na serveru a mejlem si na ní pošlu link.
Složka s výjimkami je přístupná pouze pro mou IP (.htaccess), mail odesílám ve funkci, kterou registruju takhle:
Debug::$onFatalError[] = 'debugHandler';
Pokud jde o smtp server tak ten se dá v php.ini (a nejspíš i dynamicky přes ini_set()) nastavit.
- Patrik Votoček
- Člen | 2221
Nette laděnky neposílá záměrně a to z toho důvodu aby když dojde k chybě jsi byl nucen navštívit složku s logy kde na tebe může bafnout o hodně více souborů (případně chyby na které se zapomělo / nepodařilo poslat na mail).