IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nastavení odesílání emailů v php.ini.

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Markéta
Člen
Avatar
Markéta:4.7.2019 22:01

Ahoj,
teprve začínám s programováním v php a nefunguje mi odesílání mailů přes vytvořený formulář. Nechci ho nahrávat na webhosting, a tak jsem chtěla změnit nastavení v php.ini (mám nainstalovaný celý balíček XAMPP, operační systém Windows 10). Stále se mi zobrazuje chybová hláška:

Warning: 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\htdoc­s\processorder\pro­cessfeedback.php on line 13

Zkusil jsem: Přitom v php.ini mám toto nastavení: (původní "STMP = localhost" mám přepsané, provedla jsem restart)

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.seznam.cz
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
; sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog

Chci docílit: Nevím, co mám v souboru php.ini špatně, nebo v čem jiném by mohl být problém, a proto moc prosím o radu. Díky :-)

 
Odpovědět
4.7.2019 22:01
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Markéta
Jakub Žák:5.7.2019 11:08

Je to správný php.ini? Byl po změně php.ini restartován webserver?

Po vypsání nastavení php pomocí funkce phpinfo() se zobrazí správné nastavení?

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
5.7.2019 11:08
Kuba je ajťák. Buď jako Kuba.
Avatar
Markéta
Člen
Avatar
Odpovídá na Jakub Žák
Markéta:5.7.2019 22:59

Jo díky :-) nastavila jsem to ve špatném souboru v php.ini-development. Teď mi naskočil jiný problém z autorizací: Warning: mail(): SMTP server response: 550 5.7.1 Not authenticated, please use AUTH first. in C:\xampp\htdoc­s\processorder\pro­cessfeedback.php on line 33
a zase se mi nedaří to zprovoznit, prosím, nevíš jak na to?

 
Nahoru Odpovědět
5.7.2019 22:59
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Markéta
Martin Dráb:6.7.2019 18:53

Tady je ohledně php.ini a odesílání mailů docela obsáhlá diskuze.
https://stackoverflow.com/…ame-password

Podle jedné odpovědi (asi třetí-čtvrtá) by mohlo stačit do php.ini do sekce mail function přidat i položky auth_username a auth_password a dát tam uživatelské jméno a heslo pro server Seznamu. Asi bys měla také doplnit položku sendmail_from (vypadá to, že je zakomentovaná), protože Seznam asi nepovolí odesílat anonymní emaily.

Nahoru Odpovědět
6.7.2019 18:53
2 + 2 = 5 for extremely large values of 2
Avatar
Markéta
Člen
Avatar
Odpovídá na Martin Dráb
Markéta:7.7.2019 19:38

Děkuju, vyzkouším to. :-)

 
Nahoru Odpovědět
7.7.2019 19:38
Avatar
Jakub Žák
Člen
Avatar
Jakub Žák:7.7.2019 19:48

Přesně tak, je potřeba vyplnit i jméno a heslo - naprostá většina SMTP serverů nepodporuje odesílání e-mailů bez přihlášení. Taky se u mnohých služeb musí shodovat odesílatel s uživatelem (nebo daný uživatel aspoň musí mít oprávnění zasílat e-maily z dané adresy).

Jelikož není jméno a heslo vyplněno, zkoušelo to rovnou bez přihlášení odeslat e-mail, což u Seznamu samozřejmě nejde ;)

Nahoru Odpovědět
7.7.2019 19:48
Kuba je ajťák. Buď jako Kuba.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.