Mailer – permission denied

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

Zdravím, byl jsem požádán o opravu kódu který psal někdo jiný a zjistil jsem že je použito nette. Obracím se prosím o radu zde jeslti by někdo nevěděl, kde by mohl být problém. v logu vidím tuhle chybu:

[31-Mar-2011 08:59:27] PHP Fatal error: Uncaught exception ‚InvalidStateException‘ with message ‚failed to open stream: Permission denied‘ in /mnt/swraid/data/s/slevnenoted.cz/www/libs/nette_loader.php:3051
Stack trace:
#0 /mnt/swraid/data/s/slevnenoted.cz/www/libs/nette_loader.php(3026): SendmailMailer->send(Object(Mail))
#1 /mnt/swraid/data/s/slevnenoted.cz/www/admin/index.php(1154): Mail->send()
#2 {main}

A zde je kus kódu který to vyhazuje.

						//pdfka
						$emmail = new Mail;
						$emmail->setFrom($admin_email);
						$emmail->addTo($_GET['vybaveno']);
						$emmail->setSubject("Konec aukce ".$sleva['nazev']."- úspěch");
						$emmail->setHTMLBody($nastaveni['emailvyr']);
						//podělání voucherů
						$vouchery = array();
						for($i=0;$i<$kolik;$i++) {
							$hodnoty['email_uzivatele'] = $_GET['vybaveno'];
							$hodnoty['id_slevy'] = $sleva['id'];
							$hodnoty['voucher'] = genVoucher();
							array_push($vouchery,$hodnoty['voucher']);
							dibi::query('INSERT INTO [vouchery]',$hodnoty);
							genPdf($sleva,$hodnoty['voucher'],$_GET['vybaveno'],$_GET['kolik']);
							$emmail->addAttachment("../tmp/".$hodnoty['voucher'].".pdf");
						}
						$emmail->send();

$emmail->send(); je řádek 1154

Děkuji za každou radu.

jval
Člen | 36
+
0
-

Opravdu nikdo netušíte kde by mohl být probém?

jtousek
Člen | 951
+
0
-

Viděl bych to na problém té funkce genPdf, která má zřejmě vygenerovat soubor, ale neudělá to.

EDIT: Anebo ho potom Nette nemůže otevřít. Tj. chybně nastavená práva čtení/zápisu do určité složky?

Editoval jtousek (2. 4. 2011 20:21)

jval
Člen | 36
+
0
-

PDF se vygeneruje bez problémů a chyba se objeví i když řádek

$emmail->addAttachment("../tmp/".$hodnoty['voucher'].".pdf");

zakomentuji, takže tam to nejspíše nebude, ale přiznám se že to bylo to první co mě také napadlo.

kravčo
Člen | 721
+
0
-

Skús zistiť, ku ktorému streamu presne to nemá prístup…

jval
Člen | 36
+
0
-

Zkoušel jsem, ale jaksi jsem nikde nenašel s kterým souborem má problém. ZDE
je laděnka jestli někdo máte lepší oči než já.
Ani v php error logu není nikde zapsána cesta k souboru s kterým je problém.

Honza Kuchař
Člen | 1662
+
0
-

Kažodpádně to vypadá, že máš na serveru zablokované nějaké fce, které Mail potřebuje.

kravčo
Člen | 721
+
0
-

phpinfo()? Ladenka je super, ale nič neukazuje (okrem tvojej adresárovej štruktúry…)

jval
Člen | 36
+
0
-
kravčo
Člen | 721
+
0
-

A skúšal si to vôbec googliť? Pri prvom dopyte ktorý mi napadol som našiel hneď dve odpovede na tvoju otázku…

Malo by to vyriešiť vypnutie/zakomentovanie logovania mailov:

php.ini

; mail.log = '/path/to/your/email/log'

Hláške Nette je v tomto prípade trochu nezrozumiteľná…