Autor Zpráva
_fantomas
Profil
Ahoj, viem že toto nieje PHPMailer podpora ale radšej sa spýtam tu kto s tím má skúsenosť nech mi prosím poradí.

Napojil som si skript PHP Mailer

asi takto

require("class.phpmailer.php");
$mail = new PHPMailer();

                $mail->isSMTP();  // k odeslání e-mailu použijeme SMTP server
                $mail->Host = "smtp.gmail.com";  // zadáme adresu SMTP serveru
                $mail->SMTPAuth = true;               // nastavíme true v případě, že server vyžaduje SMTP autentizaci
                $mail->Username = "**********";   // uživatelské jméno pro SMTP autentizaci
                $mail->Password = "**********";            // heslo pro SMTP autentizaci
                $mail->From = "********";   // adresa odesílatele skriptu
                $mail->FromName = "Testovací skript"; // jméno odesílatele skriptu (zobrazí se vedle adresy odesílatele)
                
                $mail->AddAddress("*********");  // přidáme příjemce
                //$mail->AddAddress("druhy.prijemce@example.net", "Jméno druhého příjemce");  // a klidně i druhého, včetně jména
                
                $mail->Subject = "První mail poslaný pomocí PHPMaileru";    // nastavíme předmět e-mailu
                $mail->Body = "Ahoj ahoj!\n\n Posílám ti první svůj první e-mail přes PHPMailer.";  // nastavíme tělo e-mailu
                $mail->WordWrap = 50;   // je vhodné taky nastavit zalomení (po 50 znacích)
                $mail->CharSet = "utf-8";   // nastavíme kódování, ve kterém odesíláme e-mail
                
                if(!$mail->Send()) {  // odešleme e-mail
                    echo 'Došlo k chybě při odeslání e-mailu.';
                    echo 'Chybová hláška: ' . $mail->ErrorInfo;
                }
                else
                {
                    echo 'E-mail byl v pořádku odeslán.';
                }

Celé je to napojené na formulár ktorý po vyplnení a odoslaní vypíše toto :

Notice: Undefined variable: mail in C:\xampp\htdocs\develop\Game\includes\register.php on line 70

Fatal error: Call to a member function isSMTP() on null in C:\xampp\htdocs\develop\Game\includes\register.php on line 70

BTW: ak by sa niekto pytal na aky formular tak na registračný, funguje ako má až na ten php mailer neviem kde je problem :?
tiso
Profil
_fantomas: chybová hláška hovorí jasne - premenná $mail na tom riadku 70 neexistuje. Ukáž čo je medzi
$mail = new PHPMailer();
a
$mail->isSMTP();
Zechy
Profil
A nemáš předtím ještě něco? Dle první hlášky ve chvíli, kdy chceš pracovat s tím mailerem, tak proměnná mail neexistuje, čímž vzniká i druhá chyba.
_fantomas
Profil
Zistil som že som neinxludoval subot class.smtp.php no ked som spustil skript znovu napísalo to

Došlo k chybě při odeslání e-mailu.Chybová hláška: SMTP connect() failed.

Problém bude asi v spojení ale v akom? SMTP mám snaď dobré nastavené

            $mail->isSMTP();  // k odeslání e-mailu použijeme SMTP server
                $mail->Host = "smtp.gmail.com";  // zadáme adresu SMTP serveru
                $mail->SMTPAuth = true;               // nastavíme true v případě, že server vyžaduje SMTP autentizaci
                $mail->Username = "tu mam svoj email ktorý to posiela";   // uživatelské jméno pro SMTP autentizaci
                $mail->Password = "heslo od emailu";            // heslo pro SMTP autentizaci
                $mail->From = "znovu moj email";   // adresa odesílatele skriptu
                $mail->FromName = "Testovací skript"; // jméno odesílatele skriptu (zobrazí se vedle adresy odesílatele)
                
                $mail->AddAddress("email komu to ma prist");  // přidáme příjemce
Zechy
Profil
_fantomas:
Měl by jsi nastavit ještě port, u Googlu se používá port 465 a né výchozí, který využívá SMTP. Navíc, já mám ještě nastavené, že se musím připojovat přes SSL, tedy zabezpečené připojení.

Navíc ti GMail pošle upozornění, že se tvůj účet snaží použít méně bezpečná aplikace s odkazem na povolení, aby méně bezpečné aplikace jej mohli používat.
_fantomas
Profil
a ako nastavim to SSL?
Zechy
Profil
_fantomas:
Přímo PHPMailer nepoužívám, tudíž se budeš muset podívat někam do jejich dokumentace jak nastavit SSL.
_fantomas
Profil
Použil som ten port 465 obnovil stránku a skript neustále niečo robí nenapísal žiadnu chybu ale stránka sa proste stále načítava
Zechy
Profil
_fantomas:
Občas to není nejrychlejší, navíc teď to bude zjevně váznout na tomto:
Navíc ti GMail pošle upozornění, že se tvůj účet snaží použít méně bezpečná aplikace s odkazem na povolení, aby méně bezpečné aplikace jej mohli používat.

Takže bys měl kontrolovat mail.
_fantomas
Profil
Problém vyriešený, vdaka za váš čas.
pcmanik
Profil
_fantomas:
a ako nastavim to SSL?
$mail->SMTPSecure = 'ssl';

Problém vyriešený, vdaka za váš čas.
Ako si to nakoniec vyriešil? Býva slušnosťou napísať riešenie keby mal niekto podobný problém.
_fantomas
Profil
pcmanik:
čo vlastne znamená ta SSL ochrana a k čomu vlastne je?

Vyriešil som to použitím portu ktorý používa google 587
Zechy
Profil
_fantomas:
Je to jako jít na web s HTTPS, prostě se data zašifrují, aby ti nikdo neodchytil heslo.
_fantomas
Profil
čítal som na tom už na wiki, a ta funkcia mi zabezpečí aby som mal stranku na https alebo posila len ak mam https?
inač som zatiaš na localhoste kym nieje projekt hotový.
Zechy
Profil
_fantomas:
Zabezpečí se prostě spojení na SMTP server. HTTPS jsem uvedl jako příklad.
_fantomas
Profil
Ako defaultna bola nastavena tls ktorú odporúčate vy?


- Po použiti toho prikladu

pcmanik:
$mail->SMTPSecure = 'ssl';
Mi skript po spustení napísal connectFailed takže to asi na localhoste nebude možné, no neriešil by som to, tls mi stačí, skript funguje, tému považujem za vyriešenú
Šéva
Profil
_fantomas:
Ako defaultna bola nastavena tls ktorú odporúčate vy?

Vzhledem k tomu, že se v SSL našla bezpečnostní chyba a většina serverů, které o této chybě vědí přecházejí na TLS, tak bych určitě používal TLS. A jelikož na tuto chybu přišel Google, tak samozřejmě hned SSL zakázal a přešel na TLS, takže SSL už ani nezkoušej. Co jsem četl, tak se postupně odstraní i podpora z prohlížečů atd...

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: