Uživatelské nástroje

Nástroje pro tento web


php

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
php [2012-06-05 12:58] – add Připojení na IMAP.unihost.cz z PHP fuxaphp [2018-03-08 17:37] (aktuální) – [Chci najednou poslat x tisíc mailů] typo fuxa
Řádek 19: Řádek 19:
   - Mail server může mít základní spam filtr, který má zabránit odesílání spamu z www serveru. Spam filtr by neměl propustit zprávy, které by jiné mail servery označily za jednoznačný spam.   - Mail server může mít základní spam filtr, který má zabránit odesílání spamu z www serveru. Spam filtr by neměl propustit zprávy, které by jiné mail servery označily za jednoznačný spam.
   - Spam filtr (pokud je zapojen) notifikuje odesílatele zprávy která je špatně formátovaná (obvykle ''BAD_HEADER'').   - Spam filtr (pokud je zapojen) notifikuje odesílatele zprávy která je špatně formátovaná (obvykle ''BAD_HEADER'').
 +
 +===== Log odeslaných emailů z webu =====
 +Logy najdete v adresari ''log'' (jedna uroven nad wwwroot) a jsou dva
 +  * ''mail.log'' = emaily prijate do fronty
 +  * ''smtp.log'' = predani na cilovy SMTP server
 +
 +Obsahuji log pro emaily za dnesek. \\
 +Frekvence generovani je kazdych 30 min. \\
 +Za predchozi dny budou dostupne (rotovany) s ciselnym sufixem. \\
 +
 +Technicky, jake emaily budou v tomto logu
 +  * poslano pres PHP funkci mail() nebo SMTP localhost
 +  * message-id je ...@[www.]domena.tld \\ napriklad ...@unihost.cz nebo ...@www.unihost.cz
 +  * zatim nemusi zahrnovat 3d (napriklad faq.unihost.cz), pokud message-id nevyhovuje predchozimu. doresime nekdy pozdeji.
 +
  
 ===== Chci najednou poslat x tisíc mailů ===== ===== Chci najednou poslat x tisíc mailů =====
Řádek 25: Řádek 40:
 Dále limit přijatých zpráv cílových mail serverů od našeho serveru. Tento limit je závislý na třetí straně a obvykle není zveřejněn (například seznam.cz). \\ Dále limit přijatých zpráv cílových mail serverů od našeho serveru. Tento limit je závislý na třetí straně a obvykle není zveřejněn (například seznam.cz). \\
 Tzn zprávy budou vloženy do fronty a pokud neexpirují, budou v čase odeslány-doručeny. K expiraci zprávy ve frontě - prohlášení za nedoručitelnou, dojde po 48 hod, v případě odmítání cílovým mail serverem po 24 hod. \\ Tzn zprávy budou vloženy do fronty a pokud neexpirují, budou v čase odeslány-doručeny. K expiraci zprávy ve frontě - prohlášení za nedoručitelnou, dojde po 48 hod, v případě odmítání cílovým mail serverem po 24 hod. \\
-Pro odesílání velkých dávek mailů je "best practice"jejich uložení do fronty aplikace a postupné uvolňování do fronty mail systému. V PHP lze použít například knihovnu [[http://pear.php.net/package/Mail_Queue|Pear Mail_Queue]].+Některé mail servery, například seznam.cz, mohou pro větší mailingy vyžadovat DKIM nebo SPF, viz [[http://seznam.seznamblog.cz/post/108069343301/seznamcz-email-zp%C5%99%C3%ADs%C5%88uje-svoji-antispamovou|Seznam.cz Email zpřísňuje svoji antispamovou politiku]]. \\ 
 +[[http://napoveda.centrum.cz/index.php?/Knowledgebase/Article/View/151/0/|Centrum.cz - Pravidla pro rozesílání většího objemu zpráv]] \\ 
 +[[https://fbl.seznam.cz|Seznam.cz - Posílání hromadných zpráv]] \\
  
 ===== Rozesílání mailingů ===== ===== Rozesílání mailingů =====
-Aby zprávy nemohly být reportovány jako spamuvádějte vždy, v textové i html podobě (obecně každé podobě zprávy) - následující text - upravte pro Vaše nasazení \\ +V souladu s [[http://uoou.cz/uoou.aspx?menu=23&submenu=25|§ 7 zákona č. 480/2004 Sb.]]o některých službách informační společnosti a o změně některých zákonů ve znění pozdějších předpisů (dále jen ZIS) \\ 
-Tato zpráva je Vám zaslána jako registrovanému uživateli, který vyslovil souhlas se zasíláním, na www.mojestranky.dom \\ +a praxí [[http://uoou.cz/uoou.aspx?menu=23|Úřadu pro ochranu osobních údajů]]který při šetření stížností požaduje 
-z IP: a.b.c.\\ +  * prokázání zdroje elektronické adresy - emailu 
-datum: d.m.r \\ +  * prokázání souhlasu se zasíláním obchodních sdělení (dále jen souhlas), datum a způsob získání, IP adresa z které byl udělen souhlas 
-Pokud si již nepřejete dostávat tyto zprávyklikněte zde pro odhlášení\\+  * plnění požadavků ustanovení 
 + 
 +Požadujeme aby každá zpráva = obchodní sdělení, měla tyto náležitosti v textové i HTML podobě (pokud je dotyčná podoba použita. Obecně každé podobě zprávy.\\ 
 +  * jednoduchý způsob odhlášení (= odvolání souhlasu) ze zasílání obchodních sdělení, § 7 bod 3. Například \\ //Pokud si již nepřejete dostávat obchodních sdělení od naší firmy, klikněte zde pro odhlášení.//  
 +  * označení jako obchodní sdělení, § 7 bod 4. Do patičky uveďte všechny nížuvedené náležitosti 
 +    * totožnost odesílatele obchodního sdělení identifikovaný obchodním jménem a adresou www stránek 
 +    * IP adresa z které byl vysloven souhlas 
 +    * datum a čas kdy byl vysloven souhlas 
 +v libovolné formulaci vyhovující právním předpisům \\ //Tato zpráva je obchodním sdělením společnosti Moje Firma s.r.o.\\ které Vám bylo zasláno na základě vysloveného souhlasu na www.mojestranky.dom \\ z IP: 1.2.3.\\ datum: 1.1.2000 11:39// 
 +  * reply-to je platná emailová adresa § 7 bod 4 c 
 + 
 +V případě nesplnění těchto smluvních podmínek podložených právními předpisy, si vyhrazujeme právo - s ohledem na náročnost řešení stížností a možného negativního dopadu na naše další zákazníky - okamžitého smazání emailů vykazujících znaky obchodního sdělení. 
 + 
 +Doporučujeme také do odkazů apod umístit jednoznačný identifikátor příjemcenapříklad hash emailu nebo ID, který umožní vyřadit email příjemce z databáze v případě stížností na spam. Ve většině stížností je totiž email příjemce a Message-ID odstraněno. 
 \\ \\
-[[http://www.root.cz/clanky/obchodni-sdeleni-bez-predchoziho-souhlasu-to-nejde/|článek Obchodní sdělení: bez předchozího souhlasu to nejde]]+Reference: 
 +  * [[http://uoou.cz/uoou.aspx?menu=23&submenu=25|§ 7 zákona č. 480/2004 Sb.]] - o některých službách informační společnosti a o změně některých zákonů (zákon o některých službách informační společnosti) 
 +  * [[http://www.root.cz/clanky/obchodni-sdeleni-bez-predchoziho-souhlasu-to-nejde/|článek Obchodní sdělení: bez předchozího souhlasu to nejde]]
 ===== Maily jsou označovány jako SPAM pokud jako From uvedu email uživatele ===== ===== Maily jsou označovány jako SPAM pokud jako From uvedu email uživatele =====
 Pokud emaily odesílané z našich www serverů jsou označovány jako SPAM a ve ''From'' použijete email uživatele/zákazníka např ''ja@gmail.com'', je to v pořádku - součást globální SPAM ochrany (nikoliv pravidlo pouze na UniHost, ale na mnoha dalších serverech v Internetu). Některé domény mají bezpečnostní politiku, že jejich emaily nemůžou odcházet z libovolného serveru, pouze z jejich serverů, jako ochrana před rozesíláním SPAMu z cizích serverů s uvedením emailu ''From'' v jejich doméně. \\ Pokud emaily odesílané z našich www serverů jsou označovány jako SPAM a ve ''From'' použijete email uživatele/zákazníka např ''ja@gmail.com'', je to v pořádku - součást globální SPAM ochrany (nikoliv pravidlo pouze na UniHost, ale na mnoha dalších serverech v Internetu). Některé domény mají bezpečnostní politiku, že jejich emaily nemůžou odcházet z libovolného serveru, pouze z jejich serverů, jako ochrana před rozesíláním SPAMu z cizích serverů s uvedením emailu ''From'' v jejich doméně. \\
Řádek 50: Řádek 83:
  
 ===== Generování PDF v PHP ===== ===== Generování PDF v PHP =====
-Lze použít knihovny (class) například: [[http://www.fpdf.org/|FPDF]], [[http://www.ros.co.nz/pdf/|R&OS pdf]] ... \\+Lze použít knihovny (class) například: [[http://www.fpdf.org/|FPDF]], [[https://github.com/rospdf/pdf-php|R&OS pdf]] ... \\
 Pokud víte o jiné která u nás funguje, dejte nám vědět. \\ Pokud víte o jiné která u nás funguje, dejte nám vědět. \\
  
Řádek 73: Řádek 106:
   * PHP 4 (ww1.unihost.cz) bez problémů   * PHP 4 (ww1.unihost.cz) bez problémů
  
 +Connect na Mysql 5.[1-5] z PHP 4 i 5 je bez problémů.
 ===== PHP 4 a náhodný problém session ===== ===== PHP 4 a náhodný problém session =====
 V rámci [[http://cz.php.net/manual/en/book.session.php|session]] nejsou při některém requestu přístupná _SESSION data - vrací prázdné Array. Později zase ano - bez ztráty dat. [[http://cz.php.net/session_id|Session_id]] se nezmění. Problém bude na straně PHP 4 (Apache modul) - po přesunu web aplikace na PHP 5 server problém vždy přestane. Session handler je standardní file, file existuje, obsahuje data a má správná práva. Je tedy divné, že PHP jej občas nepřečte (testováno i s [[http://cz.php.net/session_write_close|session_write_close]]). Error reporting nic nehlásí. V rámci [[http://cz.php.net/manual/en/book.session.php|session]] nejsou při některém requestu přístupná _SESSION data - vrací prázdné Array. Později zase ano - bez ztráty dat. [[http://cz.php.net/session_id|Session_id]] se nezmění. Problém bude na straně PHP 4 (Apache modul) - po přesunu web aplikace na PHP 5 server problém vždy přestane. Session handler je standardní file, file existuje, obsahuje data a má správná práva. Je tedy divné, že PHP jej občas nepřečte (testováno i s [[http://cz.php.net/session_write_close|session_write_close]]). Error reporting nic nehlásí.
Řádek 110: Řádek 143:
 <code php> <code php>
 // přes SSL // přes SSL
-var_dump(imap_open("{imap.unihost.cz:995/pop3/ssl/novalidate-cert}", $user, $heslo)); +var_dump(imap_open("{imap.unihost.cz:995/pop3/ssl}", $user, $heslo)); 
-var_dump(imap_open("{imap.unihost.cz:993/imap/ssl/novalidate-cert}", $user, $heslo));+var_dump(imap_open("{imap.unihost.cz:993/imap/ssl}", $user, $heslo));
 // resource(4) of type (imap) // resource(4) of type (imap)
  
 // přes TLS // přes TLS
-var_dump(imap_open("{imap.unihost.cz:110/pop3/tls/novalidate-cert}", $user, $heslo)); +var_dump(imap_open("{imap.unihost.cz:110/pop3/tls}", $user, $heslo)); 
-var_dump(imap_open("{imap.unihost.cz:143/imap/tls/novalidate-cert}", $user, $heslo));+var_dump(imap_open("{imap.unihost.cz:143/imap/tls}", $user, $heslo));
 // resource(4) of type (imap) // resource(4) of type (imap)
  
 +# 25.2.2014 testováno a již není nutné
 # novalidate-cert je nutný přestože certifikáty jsou validní a podepsané cert autoritou, kvůli akceptování kořenového certifikátu CA. # novalidate-cert je nutný přestože certifikáty jsou validní a podepsané cert autoritou, kvůli akceptování kořenového certifikátu CA.
 # unable to get local issuer certificate: /C=US/O=GeoTrust, Inc./CN=RapidSSL CA (errflg=2) # unable to get local issuer certificate: /C=US/O=GeoTrust, Inc./CN=RapidSSL CA (errflg=2)
 </code> </code>
  
-Testováno na PHP 5.3.9 5.3.10. Dokumentace [[http://cz.php.net/imap_open|imap_open]].+Testováno na PHP 5.3.95.3.10, 5.3.28. Dokumentace [[http://cz.php.net/imap_open|imap_open]]. 
 + 
 +===== PHP FPM a REDIRECT_URL ===== 
 +v [[http://cz1.php.net/manual/en/install.fpm.php|FPM]] verzi neexistuje ''$_SERVER['REDIRECT_URL']'' narozdíl od Apache PHP module. \\ 
 +Naivní způsob nahrazení 
 +<code php> 
 +$REDIRECT_URL = (strpos($_SERVER['REQUEST_URI'], '?') ? substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?')) // obsahuje QUERY_STRING 
 +:  $_SERVER['REQUEST_URI']); 
 +</code> 
 + 
 +===== PHP FPM a REMOTE_USER ===== 
 +Pro [[http://httpd.apache.org/docs/current/mod/mod_auth_basic.html|Apache HTTP Basic Authentication]] v [[http://cz1.php.net/manual/en/install.fpm.php|FPM]] verzi neexistuje ''$_SERVER['REMOTE_USER']'' narozdíl od Apache PHP module. Ale je zde ''$_SERVER['REDIRECT_REMOTE_USER']'' a také ''$_SERVER['Authorization']''. Testováno na 5.5.21 a 5.3.21. 
 + 
 +===== Změna PHP conf ===== 
 +PHP běžící jako [[http://cz.php.net/manual/en/install.fpm.php|FPM]] nečte upravené PHP conf z ''.htaccess'' (například //php_flag short_open_tag on//), ale z [[http://cz.php.net/manual/en/configuration.file.per-user.php|.user.ini]]. \\ 
 +Naopak uvedení ''php_flag'' v ''.htaccess'' vede k ''HTTP/1.1 500 Internal Server Error'', \\ 
 +v HTTP error logu (ISPA = HTTP debug log) pak chyba: \\ 
 +''[alert] ... .htaccess: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration'' \\ 
 + 
 +Hodnoty jsou cached by PHP: //user_ini.cache_ttl controls how often user INI files are re-read. The default is 300 seconds (5 minutes).// \\ 
 +Správné použití je tedy 
 +<code> 
 +# .user.ini 
 +short_open_tag=on 
 +max_input_vars=2000 
 +</code> 
 + 
 +===== WordPress zabezpečení ===== 
 +  * [[https://codex.wordpress.org/Hardening_WordPress|Hardening WordPress]] 
 +  * [[https://www.owasp.org/index.php/OWASP_Wordpress_Security_Implementation_Guideline|OWASP Wordpress Security Implementation Guideline]]
php.1338893914.txt.gz · Poslední úprava: 2012-06-05 12:58 autor: fuxa

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki