Autor Zpráva
blahapet
Profil
Ahoj, dnes jsem poprvé zkoušel odesílat maily přes PHP mailer. Doma na localhostu se skript v pohodě připojil na SMPT na Českém hostingu a mail odeslal, ale pokud jsem pak celou aplikaci nahrál na Český hosting, nastala chyba se spojením se SMPT sereverem. Níže posílám jen část skriptu:

<?php
... ... ...
  $mail = new PHPMailer();
  $mail->IsSMTP(false);  // k odeslání e-mailu použijeme SMTP server
  $mail->Host = "smtp.cesky-hosting.cz";  // zadáme adresu SMTP serveru
  $mail->SMTPAuth = true;               // nastavíme true v případě, že server vyžaduje SMTP autentizaci
  $mail->Username = "noreply@playpanels.cz";   // uživatelské jméno pro SMTP autentizaci
  $mail->Password = "HESLO";            // heslo pro SMTP autentizaci
  $mail->From = "noreply@playpanels.cz";   // adresa odesílatele skriptu
  $mail->FromName = "Testovací skript";
... ... ...
?>

Jen podotýkám, že ta mailová schránka je funkční.


Jinak ten druhej řádek:
$mail->IsSMTP(false);  // k odeslání e-mailu použijeme SMTP server

To FALSE to jsem se ucvak, normálně ty závorky maj bejt a jsou prázdný a taky to nejde.
juriad
Profil
Ten 4. řádek je nějaký podivný. Je to jen chyba při kopírovaní sem?
Zkusil jsi zvýšit logování? Na čem to spadne, co to píše, doslova? Třeba při přístupu na SMTP server z jejich hostingu musíš použít nějaké jiné parametry.
$mail->SMTPDebug = 3;                               // Enable verbose debug output
blahapet
Profil
Ahojky, díky za radu. Po vložení toho debugu to napsalo:

SMTP -> ERROR: Failed to connect to server: Connection refused (111) Došlo k chybě při odeslání e-mailu.Chybová hláška: SMTP Error: Could not connect to SMTP host.
Davex
Profil
blahapet:
Na Českém hostingu není standardně povoleno připojení přímo na SMTP server. Co s tím? Stačí se podívat do jejich nápovědy.
blahapet
Profil
Takže chápu-li dobře...

Jiné způsoby odesílání zpráv z PHP (například přes nějaký externí odesílací SMTP server, či přímým připojením na přijímací SMTP server) nejsou standardně povoleny. Povolit je můžeme na požádání.

Mám je požádat, ať mi to povolí. To mi ale stejně nejde do hlavy, jaktože se doma z localhostu na to normálně připojím a u nich ne.
blahapet
Profil
Ještě se chci zeptat, jestli jde skript nějak upravit či resp. jestli lze nějak SMPT server obejít a odeslat mail bez něho?
blahapet
Profil
Jelikož mi Český hosting odmítl odblokovat SMPT server pro PHP Mailer a radil mi, že to jde i bez něho poslat, tak jsem zkoušel zaměnit IsSMPT() za IsMail() ...

<?php
        $mail = new PHPMailer();
        $mail->IsMail();

        $mail->AddAddress("polak_karel@seznam.cz");
        $mail->Subject = "Test 1";
        $mail->Body = "Test 1 of PHPMailer.";

        if(!$mail->Send())
        {
           echo "Error sending: " . $mail->ErrorInfo;;
        }
        else
        {
           echo "Letter sent";
}
?>

Ale píše to chybu: Could not instantiate mail function.
Davex
Profil
blahapet:
Nestačí to bez toho $mail->IsMail()?
blahapet
Profil
Bez toho to taky jde, ale zásadní věc proč to nešlo, že tam musí řádek s odesílatelem (mailová adresa)

$mail->From     = "odesilatel@seznam.cz";

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: