Posielanie logov emailom s vynimkou v prilohe

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomolas
Člen | 66
+
0
-

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
+
0
-

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
+
0
-

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.

tomolas
Člen | 66
+
0
-

Páni, veľmi pekne vám ďakujem!

Patrik Votoček
Člen | 2221
+
0
-

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).