Problém so SMTP

Programovacie jazyky, rady, poradňa...
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Problém so SMTP

Príspevok od používateľa Mmartin »

Nazdar
Snažil som sa rozbehať si SMTP na localhoste, a to tak, že som si v PHP.ini nastavil nasledujúce riadky takto:

Kód: Vybrať všetko

[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 25

; For Win32 only.
sendmail_from = [email protected]
Uložil som to, reštartoval Apache, skúsil poslať mail pomocou:

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  <form action="mail.php" method="post">
Vaše jméno:<br />
<input name="jmeno" type="text" /><br />

Váš e-mail:<br />
<input name="mail" type="text" /><br />
Předmět zprávy:<br />
<input name="predmet" type="text" /><br />

Text zprávy:<br />
<textarea name="text"></textarea><br />>
<input type="submit" value="Odeslat" />
<input type="reset" />

</form> 

<?php
$jmeno = $_POST['jmeno'];/*takto proměnné přidělíme to co bylo odesláno ve formuláři metodou POST s atributem name="jmeno"*/

$mail = $_POST['mail'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];

$prijemce = "[email protected]";
/*vyplníte mail, na který se má formulář odesílat*/

$zahlavi = "From: " . $mail . "\r\n"; 
/*zobrazuje pak v mailu jako kdyby vám mail přišel přímo z tohoto mailu, můžete pak tedy rovnou odpovídat na mail, který uživatel uvedl*/

/*takto zajistíme, aby se mail neodeslal, pokud nejsou všechna pole vyplněna*/

if ( !empty($jmeno) and !empty($mail) and !empty($predmet) and !empty($text)) {
	mail($prijemce, $predmet, $text, $zahlavi);
	echo "<h3>Děkuji. Mail byl úspěšně odeslán.</h3>"; 

	/*toto se vypíše do dokumentu, pokud se mail odešle*/

	} else {
		echo "<h3>Nevyplnili jste všechna pole. Mail nebyl odeslán.</h3>"; /*toto se vypíše pokud nebudou vyplněna všechna pole, mail se neodešle*/

		}
?>
(Je to stiahnuté, nechcelo sa mi robiť celý skript od začiatku ;))
Teraz keď to spustím, vyhodí mi:

Kód: Vybrať všetko

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:\xampp\htdocs\subory\php\mail.php on line 41
Čomu nechápem, nakoľko som si SMTP adresu zmenil :? [/code]
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

1. restartoval si apache?
2. smtp gmailu nebezi na porte 25
3. preco nepouzijes lokalny smtp server?
4. preco nepouzijes nejaku triedu na posielanie mailov? napr phpmailer
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

smtp gmailu je na porte 465 ale treba SSL
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Navyše je potrebná autorizácia a to php (pokiaľ viem) nevie. Takže budeš musieť použiť ten odporúčaný SMTP server, prípadne to odosielanie prerobíš na nejakú knižnicu, ktorá podporuje SMTP.
Napísať odpoveď