Autor Zpráva
Stepanka
Profil *
Ahoj,

prosím poradil by mi někdo?

Stáhla jsem si PHP Mailer, a do kódu dala:
require ('../PHP5 Mailer/class.phpmailer.php');   
$predmet = "Confirmation of registration";
$text_emailu = "Your registration was successful. atd...";
	
$mail = new PHPMailer(); 	
$mail->IsHTML(true); 	
$mail->AddAddress($email);  	
$mail->From = "neco@nekde.cz";
$mail->FromName = "Jméno Příjmení";	
$mail->Subject = $predmet;   	
$mail->Body = "<html><body>".$text_emailu."</body></html>"; 
$mail->AltBody = "";
$mail->WordWrap = 50;   
$mail->CharSet = "utf-8";   
		
if(!$mail->Send()) {  
	echo '<br />Došlo k chybě při odeslání e-mailu.';
	echo '<br />Chybová hláška: ' . $mail->ErrorInfo;
} else {
	echo '<p>On your e-mail <b>'.$email.'</b> was sent informations about your registration.</p>';
}	


Jenže pořád mi to vypisuje chybu Došlo k chybě při odeslání e-mailu. Chybová hláška: Could not instantiate mail function.

Pořád zkouším vygooglovat, co ta chyba znamená, ale nikde jsem nic užitečného nenašla..

Jinak PHP mám verze 5.2.5 a PHP Mailer pro verzi 5, takže zde by problém být neměl...
Před tímto mailerem jsem měla stáhnutý PHP Mailer pro verze 4, ale tam mi to házelo zase chybu Language string failed to load: instantiate

Už vůbec nevím co vyzkoušet, aby to fungovalo..

A tak se chci zeptat - nestala se vám někomu podobná věc? Jak jste ji řešili?

Děkuju moc.
srigi
Profil
Skusas to doma na localhoste? Mas spravne nastaveny SMTP server v php.ini? Vo Windowse na localhoste zadaj do direktivy
[mail function]
; For Win32 only.
SMTP = xxx.xxx.xxx.xxx
smtp_port = 25
IP alebo domenovu adresu svojho mailservera.
Stepanka
Profil *
srigi
Děkuji za reakci.
Já ale neposílám přes SMTP. Mám v kódu:
$mail = new PHPMailer(); 	
$mail->IsHTML(true); 

kdybych posílala přes SMTP, musela bych tam mít:
$mail->IsSMTP();

nebo se pletu?
nightfish
Profil
Stepanka
a co se stane, když zavoláš jenom funkci mail()? není náhodou na serveru zakázaná?
Stepanka
Profil *
srigi
Jinak ano, zkouším to doma na localhostu.. Jenže nevím, jak to bude s nastavením SMTP, až ty skripty dám na ostrý web. Proto bych radši to SMTP nastavení v php.ini nezadávala.. Ať mám větší jistotu, že to po vystavení poběží i tam.

A vůbec, nevím proč bych měla nastavovat nějaké SMTP. Funkce mail() je sice taková "ubohá", ale maily posílá a žádná nastavení přes SMTP nevyžaduje. Tudíž to musí nějak jít i bez tohoto nastavení..
Stepanka
Profil *
nightfish
Aha, to mě nenapadlo vyzkoušet.. nevěděla jsem, že se dá zakázat..
Když dám do skriptu:
mail ($email, $predmet, $text_emailu, $headers);

tak mi to vypíše:
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\web\www\Text\recapitulation.php on line 224
srigi
Profil
Stepanka
Když dám do skriptu:
mail ($email, $predmet, $text_emailu, $headers);

tak mi to vypíše: ...


Prave to je ten dovod, musis mat v php.ini nastaveny nejaky mailserver. PHP nevie kde ma poslat pakety - musi ich poslat na nejaky server, ktory porozumie emailovej adrese a podla toho posle spravu cez Internet. Kazdopadne, aby sme mali istotu, ze je to ta chyba (lebo tvoje chybove hlasenie obsahuje este info o chybajucom headry), uprav ten prikaz takto:
$headers  = "From:sender@example.com\r\n";
$headers .= "Reply-To:sender@example.com\r\n";
$headers .= "Content-Type: text-plain;\r\ncharset=iso-8859-2\r\n";

mail("prijemca@example.com", "predmet", "Telo mailu", $headers);
Ak aj toto zlyha (co by aj pri nenastavenej direktive v php.ini malo), bude to istota, ze musis do toho pola zadat nejaky mailserver. Este raz opakujem, nezalezi na tom, ze SMTP protokol nepouzivas, pri Win to musi byt nastavene.
pEeLL
Profil
Stepanka
jinak pokud jde o chybu
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\web\www\Text\recapitulation.php on line 224
tak odkomentuj v php.ini tento radek
;sendmail_from = me@example.com
srigi
Profil
pEeLL
<cite>
Direktiva sendmail_from nastavuje pole From zahlavi spravy.
</cite>

Takze bud to tvoje riesenie alebo ten moj code snipet.
Stepanka
Profil *
srigi
Zkusila jsem Tvůj kód a vypsalo mi to:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\web\www\Text\recapitulation.php on line 222

takže máš asi pravdu.

Jenže když dám do php.ini:
[mail function]
; For Win32 only.
SMTP = smtp.iol.cz
smtp_port = 25

což by mělo být správně, pokud mám ADSL internet od o2, tak mi to vypíše:
Warning: mail() [function.mail]: SMTP server response: 554 <prijemca@example.com>: Relay access denied in C:\web\www\Text\recapitulation.php on line 222


Připadá mi to, jako by to k tomu SMTP chtělo ještě nějaké jméno a heslo.. I když možná ne.. nevím.
Stepanka
Profil *
pEeLL,srigi

sendmail_from = me@example.com mám odkomentované celou dobu
nightfish
Profil
což by mělo být správně, pokud mám ADSL internet od o2, tak mi to vypíše:
Warning: mail() [function.mail]: SMTP server response: 554 <prijemca@example.com>: Relay access denied in C:\web\www\Text\recapitulation.php on line 222

zřejmě je potřeba nastavit SMTP autentizaci... a to pomocí funkce mail() nejde, takže je potřeba použít ten PHPMailer a SMTP autentizaci... viz např. http://hrazdil.info/blog/15-posilani-mailu-v-php-pomoci-phpmaileru
srigi
Profil
nj, mne tiez nefunguje adresa mojho ISP, zato perfektne mi funguje adresa mojho hostingu. Ak mas uz zriadeny hosting pre svoje stranky PHP, zadaj tam tu adresu.
Stepanka
Profil *
nightfish, srigi

Ok, děkuju mockrát. Myslím, že teď už si poradím. Jen to nechápu, protože na jiném počítači, kde mám kabelový internet od UPC mi odesílání mailů funguje perfektně, i když žádné SMTP v php.ini nezadávám. Stačí mi pouze:
$mail = new PHPMailer(); 	
$mail->IsHTML(true); 	
atd...... 

A e-maily se jeden za druhým úspěšně odesílají.

Čím to může být? Myslíte, že připojením?
Pokud ano, tak nevím, co tu celé odpoledne řeším.. prostě to budu psát na tom druhém počítači :-)
srigi
Profil
Mozno ze na tom PC bezi lokalny mailserver.
Stepanka
Profil *
srigi
A jak se to pozná? PHP jsem tam instalovala stejně jako tady na tomto PC..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: