1 <sect2 id="zend.validate.set.email_address">
3 <title>EmailAddress</title>
6 Klasa <code>Zend_Validate_EmailAddress</code> pozwala ci na
7 przeprowadzenie weryfikacji adresu email. Weryfikator wpierw dzieli adres
8 email na część lokalną oraz na nazwę serwera, a następnie próbuje
9 sprawdzić je w oparciu o znane specyfikacje dla adresów email oraz
14 <emphasis role="strong">Podstawowe użycie</emphasis>
18 Poniżej podstawowy przykład użycia:
20 <programlisting role="php"><![CDATA[
21 $validator = new Zend_Validate_EmailAddress();
22 if ($validator->isValid($email)) {
23 // adres email wygląda na prawidłowy
25 // adres email jest nieprawidłowy; wyświetl powody
26 foreach ($validator->getMessages() as $message) {
33 Sprawdzi to adres email <code>$email</code> i w przypadku niepowodzenia
34 wypełni <code>$validator->getMessages()</code> użytecznymi informacjami
35 informującymi o błędach.
40 <emphasis role="strong">Części adresu email</emphasis>
44 <code>Zend_Validate_EmailAddress</code> dopasuje każdy prawidłowy adres email zgodny ze
46 Na przykład, poprawnymi adresami będą <code>bob@domain.com</code>,
47 <code>bob+jones@domain.us</code>, <code>"bob@jones"@domain.com</code>
48 oraz <code>"bob jones"@domain.com</code>
52 Niektóre przestarzałe formaty adresów email nie są obecnie weryfikowane
53 (np. zawierające znak powrotu karetki, albo znak "\" w adresie email).
57 <emphasis role="strong">Weryfikacja dla różnych typów adresów serwerów</emphasis>
61 Część adresu email zawierająca adres serwera jest weryfikowana za pomocą
62 <link linkend="zend.validate.set.hostname"><code>Zend_Validate_Hostname</code></link>.
63 Domyślnie akceptowane są jedynie adresy DNS w stylu <code>domain.com</code>,
64 ale jeśli chcesz, to możesz włączyć akceptowanie także adresów IP oraz
69 Aby to zrobić, musisz utworzyć instancję <code>Zend_Validate_EmailAddress</code>
70 przekazując parametr określający typ adresów jakie chcesz akceptować.
71 Więcej szczegółów znajdziesz w <code>Zend_Validate_Hostname</code>,
72 jednak poniżej możesz zobaczyć przykład akceptowania zarówno adresów DNS
73 jak i adresów lokalnych:
75 <programlisting role="php"><![CDATA[
76 $validator = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS | Zend_Validate_Hostname::ALLOW_LOCAL);
77 if ($validator->isValid($email)) {
78 // adres email wygląda na prawidłowy
80 // adres email jest nieprawidłowy; wyświetl powody
81 foreach ($validator->getMessages() as $message) {
90 <emphasis role="strong">Checking if the hostname actually accepts email</emphasis>
94 Just because an email address is in the correct format, it doesn't necessarily mean that
95 email address actually exists. To help solve this problem, you can use MX validation to
96 check whether an MX (email) entry exists in the DNS record for the email's hostname.
97 This tells you that the hostname accepts email, but doesn't tell you the exact email
98 address itself is valid.
102 MX checking is not enabled by default and at this time is only supported by UNIX platforms.
103 To enable MX checking you can pass a second parameter to the <code>Zend_Validate_EmailAddress</code>
106 <programlisting role="php"><![CDATA[
107 $validator = new Zend_Validate_EmailAddress(Zend_Validate_Hostname::ALLOW_DNS, true);
111 Alternatively you can either pass <code>true</code> or <code>false</code> to
112 <code>$validator->setValidateMx()</code> to enable or disable MX validation.
116 By enabling this setting network functions will be used to check for the presence of an
117 MX record on the hostname of the email address you wish to validate. Please be aware
118 this will likely slow your script down.
122 <emphasis role="strong">Validating International Domains Names</emphasis>
126 <code>Zend_Validate_EmailAddress</code> will also match international characters that exist in some domains.
127 This is known as International Domain Name (IDN) support. This is enabled by default, though
128 you can disable this by changing the setting via the internal <code>Zend_Validate_Hostname</code> object
129 that exists within <code>Zend_Validate_EmailAddress</code>.
131 <programlisting role="php"><![CDATA[
132 $validator->hostnameValidator->setValidateIdn(false);
136 Więcej informacji na temat użycia metody <code>setValidateIdn()</code>
137 znajduje się w dokumentacji <code>Zend_Validate_Hostname</code>.
141 Please note IDNs are only validated if you allow DNS hostnames to be validated.
145 <emphasis role="strong">Validating Top Level Domains</emphasis>
149 By default a hostname will be checked against a list of known TLDs. This is enabled by
150 default, though you can disable this by changing the setting via the internal
151 <code>Zend_Validate_Hostname</code> object that exists within <code>Zend_Validate_EmailAddress</code>.
153 <programlisting role="php"><![CDATA[
154 $validator->hostnameValidator->setValidateTld(false);
158 Więcej informacji na temat użycia metody <code>setValidateTld()</code>
159 znajduje się w dokumentacji Zend_Validate_Hostname.
163 Please note TLDs are only validated if you allow DNS hostnames to be validated.