Rev 9 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
22 | daniel-mar | 1 | <?xml version="1.0" encoding="utf-8" standalone="no"?> |
2 | <!DOCTYPE tests> |
||
3 | <!-- |
||
4 | Source: http://isemail.googlecode.com/svn/trunk/tests/tests.xml |
||
5 | --> |
||
6 | <tests xmlns="http://www.w3.org/2001/XMLSchema-instance" |
||
7 | SchemaLocation="mailValidatorTests.xsd"> |
||
4 | daniel-mar | 8 | <test> |
9 | <address>first.last@example.com</address> |
||
10 | <valid>true</valid> |
||
11 | <source>Dominic Sayers</source> |
||
12 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
13 | <id>1</id> |
||
14 | </test> |
||
15 | <test> |
||
22 | daniel-mar | 16 | <address>1234567890123456789012345678901234567890123456789012345678901234@example.com |
17 | </address> |
||
4 | daniel-mar | 18 | <valid>true</valid> |
19 | <source>Dominic Sayers</source> |
||
20 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
21 | <id>2</id> |
||
22 | </test> |
||
23 | <test> |
||
24 | <address>first.last@sub.do,com</address> |
||
25 | <valid>false</valid> |
||
22 | daniel-mar | 26 | <comment>Mistyped comma instead of dot (replaces old #3 which was the |
27 | same as #57)</comment> |
||
4 | daniel-mar | 28 | <source>Rob <bob@bob.com></source> |
29 | <id>3</id> |
||
30 | </test> |
||
31 | <test> |
||
32 | <address>"first\"last"@example.com</address> |
||
33 | <valid>true</valid> |
||
34 | <source>Dominic Sayers</source> |
||
35 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
36 | <id>4</id> |
||
37 | </test> |
||
38 | <test> |
||
39 | <address>first\@last@example.com</address> |
||
40 | <valid>false</valid> |
||
41 | <comment>Escaping can only happen within a quoted string</comment> |
||
42 | <source>Dominic Sayers</source> |
||
43 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
44 | <id>5</id> |
||
45 | </test> |
||
46 | <test> |
||
47 | <address>"first@last"@example.com</address> |
||
48 | <valid>true</valid> |
||
49 | <source>Dominic Sayers</source> |
||
50 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
51 | <id>6</id> |
||
52 | </test> |
||
53 | <test> |
||
54 | <address>"first\\last"@example.com</address> |
||
55 | <valid>true</valid> |
||
56 | <source>Dominic Sayers</source> |
||
57 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
58 | <id>7</id> |
||
59 | </test> |
||
60 | <test> |
||
22 | daniel-mar | 61 | <address>x@x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x2 |
62 | </address> |
||
4 | daniel-mar | 63 | <valid>true</valid> |
22 | daniel-mar | 64 | <comment>Total length reduced to 254 characters so it's still valid |
65 | </comment> |
||
4 | daniel-mar | 66 | <source>Dominic Sayers</source> |
67 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
68 | <id>8</id> |
||
69 | </test> |
||
70 | <test> |
||
22 | daniel-mar | 71 | <address>1234567890123456789012345678901234567890123456789012345678@12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.123456789012345678901234567890123456789012345678901234567890123.example.com |
72 | </address> |
||
4 | daniel-mar | 73 | <valid>true</valid> |
22 | daniel-mar | 74 | <comment>Total length reduced to 254 characters so it's still valid |
75 | </comment> |
||
4 | daniel-mar | 76 | <source>RFC 3696 erratum 1690</source> |
22 | daniel-mar | 77 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690 |
78 | </sourcelink> |
||
4 | daniel-mar | 79 | <id>9</id> |
80 | </test> |
||
81 | <test> |
||
82 | <address>first.last@[12.34.56.78]</address> |
||
83 | <valid>true</valid> |
||
84 | <source>RFC 3696 erratum 1690</source> |
||
22 | daniel-mar | 85 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690 |
86 | </sourcelink> |
||
4 | daniel-mar | 87 | <id>10</id> |
88 | </test> |
||
89 | <test> |
||
90 | <address>first.last@[IPv6:::12.34.56.78]</address> |
||
91 | <valid>true</valid> |
||
92 | <source>Dominic Sayers</source> |
||
93 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
94 | <id>11</id> |
||
95 | </test> |
||
96 | <test> |
||
97 | <address>first.last@[IPv6:1111:2222:3333::4444:12.34.56.78]</address> |
||
98 | <valid>true</valid> |
||
99 | <source>Dominic Sayers</source> |
||
100 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
101 | <id>12</id> |
||
102 | </test> |
||
103 | <test> |
||
22 | daniel-mar | 104 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.56.78] |
105 | </address> |
||
4 | daniel-mar | 106 | <valid>true</valid> |
107 | <source>Dominic Sayers</source> |
||
108 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
109 | <id>13</id> |
||
110 | </test> |
||
111 | <test> |
||
112 | <address>first.last@[IPv6:::1111:2222:3333:4444:5555:6666]</address> |
||
113 | <valid>true</valid> |
||
114 | <source>Dominic Sayers</source> |
||
115 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
116 | <id>14</id> |
||
117 | </test> |
||
118 | <test> |
||
119 | <address>first.last@[IPv6:1111:2222:3333::4444:5555:6666]</address> |
||
120 | <valid>true</valid> |
||
121 | <source>Dominic Sayers</source> |
||
122 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
123 | <id>15</id> |
||
124 | </test> |
||
125 | <test> |
||
126 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666::]</address> |
||
127 | <valid>true</valid> |
||
128 | <source>Dominic Sayers</source> |
||
129 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
130 | <id>16</id> |
||
131 | </test> |
||
132 | <test> |
||
22 | daniel-mar | 133 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888] |
134 | </address> |
||
4 | daniel-mar | 135 | <valid>true</valid> |
136 | <source>Dominic Sayers</source> |
||
137 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
138 | <id>17</id> |
||
139 | </test> |
||
140 | <test> |
||
22 | daniel-mar | 141 | <address>first.last@x23456789012345678901234567890123456789012345678901234567890123.example.com |
142 | </address> |
||
4 | daniel-mar | 143 | <valid>true</valid> |
144 | <source>Dominic Sayers</source> |
||
145 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
146 | <id>18</id> |
||
147 | </test> |
||
148 | <test> |
||
149 | <address>first.last@1xample.com</address> |
||
150 | <valid>true</valid> |
||
151 | <source>Dominic Sayers</source> |
||
152 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
153 | <id>19</id> |
||
154 | </test> |
||
155 | <test> |
||
156 | <address>first.last@123.example.com</address> |
||
157 | <valid>true</valid> |
||
158 | <source>Dominic Sayers</source> |
||
159 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
160 | <id>20</id> |
||
161 | </test> |
||
162 | <test> |
||
22 | daniel-mar | 163 | <address>123456789012345678901234567890123456789012345678901234567890@12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.12.example.com |
164 | </address> |
||
4 | daniel-mar | 165 | <valid>false</valid> |
166 | <comment>Entire address is longer than 254 characters</comment> |
||
167 | <source>RFC 3696 erratum 1690</source> |
||
22 | daniel-mar | 168 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690 |
169 | </sourcelink> |
||
4 | daniel-mar | 170 | <id>21</id> |
171 | </test> |
||
172 | <test> |
||
173 | <address>first.last</address> |
||
174 | <valid>false</valid> |
||
175 | <comment>No @</comment> |
||
176 | <source>Dominic Sayers</source> |
||
177 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
178 | <id>22</id> |
||
179 | </test> |
||
180 | <test> |
||
22 | daniel-mar | 181 | <address>12345678901234567890123456789012345678901234567890123456789012345@example.com |
182 | </address> |
||
4 | daniel-mar | 183 | <valid>false</valid> |
184 | <comment>Local part more than 64 characters</comment> |
||
185 | <source>Dominic Sayers</source> |
||
186 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
187 | <id>23</id> |
||
188 | </test> |
||
189 | <test> |
||
190 | <address>.first.last@example.com</address> |
||
191 | <valid>false</valid> |
||
192 | <comment>Local part starts with a dot</comment> |
||
193 | <source>Dominic Sayers</source> |
||
194 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
195 | <id>24</id> |
||
196 | </test> |
||
197 | <test> |
||
198 | <address>first.last.@example.com</address> |
||
199 | <valid>false</valid> |
||
200 | <comment>Local part ends with a dot</comment> |
||
201 | <source>Dominic Sayers</source> |
||
202 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
203 | <id>25</id> |
||
204 | </test> |
||
205 | <test> |
||
206 | <address>first..last@example.com</address> |
||
207 | <valid>false</valid> |
||
208 | <comment>Local part has consecutive dots</comment> |
||
209 | <source>Dominic Sayers</source> |
||
210 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
211 | <id>26</id> |
||
212 | </test> |
||
213 | <test> |
||
214 | <address>"first"last"@example.com</address> |
||
215 | <valid>false</valid> |
||
216 | <comment>Local part contains unescaped excluded characters</comment> |
||
217 | <source>Dominic Sayers</source> |
||
218 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
219 | <id>27</id> |
||
220 | </test> |
||
221 | <test> |
||
222 | <address>"first\last"@example.com</address> |
||
223 | <valid>true</valid> |
||
224 | <comment>Any character can be escaped in a quoted string</comment> |
||
225 | <source>Dominic Sayers</source> |
||
226 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
227 | <id>28</id> |
||
228 | </test> |
||
229 | <test> |
||
230 | <address>"""@example.com</address> |
||
231 | <valid>false</valid> |
||
232 | <comment>Local part contains unescaped excluded characters</comment> |
||
233 | <source>Dominic Sayers</source> |
||
234 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
235 | <id>29</id> |
||
236 | </test> |
||
237 | <test> |
||
238 | <address>"\"@example.com</address> |
||
239 | <valid>false</valid> |
||
240 | <comment>Local part cannot end with a backslash</comment> |
||
241 | <source>Dominic Sayers</source> |
||
242 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
243 | <id>30</id> |
||
244 | </test> |
||
245 | <test> |
||
246 | <address>""@example.com</address> |
||
247 | <valid>false</valid> |
||
248 | <comment>Local part is effectively empty</comment> |
||
249 | <source>Dominic Sayers</source> |
||
250 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
251 | <id>31</id> |
||
252 | </test> |
||
253 | <test> |
||
254 | <address>first\\@last@example.com</address> |
||
255 | <valid>false</valid> |
||
256 | <comment>Local part contains unescaped excluded characters</comment> |
||
257 | <source>Dominic Sayers</source> |
||
258 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
259 | <id>32</id> |
||
260 | </test> |
||
261 | <test> |
||
262 | <address>first.last@</address> |
||
263 | <valid>false</valid> |
||
264 | <comment>No domain</comment> |
||
265 | <source>Dominic Sayers</source> |
||
266 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
267 | <id>33</id> |
||
268 | </test> |
||
269 | <test> |
||
22 | daniel-mar | 270 | <address>x@x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456 |
271 | </address> |
||
4 | daniel-mar | 272 | <valid>false</valid> |
273 | <comment>Domain exceeds 255 chars</comment> |
||
274 | <source>Dominic Sayers</source> |
||
275 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
276 | <id>34</id> |
||
277 | </test> |
||
278 | <test> |
||
279 | <address>first.last@[.12.34.56.78]</address> |
||
280 | <valid>false</valid> |
||
281 | <comment>Only char that can precede IPv4 address is ':'</comment> |
||
282 | <source>Dominic Sayers</source> |
||
283 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
284 | <id>35</id> |
||
285 | </test> |
||
286 | <test> |
||
287 | <address>first.last@[12.34.56.789]</address> |
||
288 | <valid>false</valid> |
||
289 | <comment>Can't be interpreted as IPv4 so IPv6 tag is missing</comment> |
||
290 | <source>Dominic Sayers</source> |
||
291 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
292 | <id>36</id> |
||
293 | </test> |
||
294 | <test> |
||
295 | <address>first.last@[::12.34.56.78]</address> |
||
296 | <valid>false</valid> |
||
297 | <comment>IPv6 tag is missing</comment> |
||
298 | <source>Dominic Sayers</source> |
||
299 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
300 | <id>37</id> |
||
301 | </test> |
||
302 | <test> |
||
303 | <address>first.last@[IPv5:::12.34.56.78]</address> |
||
304 | <valid>false</valid> |
||
305 | <comment>IPv6 tag is wrong</comment> |
||
306 | <source>Dominic Sayers</source> |
||
307 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
308 | <id>38</id> |
||
309 | </test> |
||
310 | <test> |
||
22 | daniel-mar | 311 | <address>first.last@[IPv6:1111:2222:3333::4444:5555:12.34.56.78] |
312 | </address> |
||
4 | daniel-mar | 313 | <valid>false</valid> |
314 | <comment>Too many IPv6 groups (4 max)</comment> |
||
315 | <source>Dominic Sayers</source> |
||
316 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
317 | <id>39</id> |
||
318 | </test> |
||
319 | <test> |
||
22 | daniel-mar | 320 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:12.34.56.78] |
321 | </address> |
||
4 | daniel-mar | 322 | <valid>false</valid> |
323 | <comment>Not enough IPv6 groups</comment> |
||
324 | <source>Dominic Sayers</source> |
||
325 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
326 | <id>40</id> |
||
327 | </test> |
||
328 | <test> |
||
22 | daniel-mar | 329 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:12.34.56.78] |
330 | </address> |
||
4 | daniel-mar | 331 | <valid>false</valid> |
332 | <comment>Too many IPv6 groups (6 max)</comment> |
||
333 | <source>Dominic Sayers</source> |
||
334 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
335 | <id>41</id> |
||
336 | </test> |
||
337 | <test> |
||
22 | daniel-mar | 338 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777] |
339 | </address> |
||
4 | daniel-mar | 340 | <valid>false</valid> |
341 | <comment>Not enough IPv6 groups</comment> |
||
342 | <source>Dominic Sayers</source> |
||
343 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
344 | <id>42</id> |
||
345 | </test> |
||
346 | <test> |
||
22 | daniel-mar | 347 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999] |
348 | </address> |
||
4 | daniel-mar | 349 | <valid>false</valid> |
350 | <comment>Too many IPv6 groups (8 max)</comment> |
||
351 | <source>Dominic Sayers</source> |
||
352 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
353 | <id>43</id> |
||
354 | </test> |
||
355 | <test> |
||
356 | <address>first.last@[IPv6:1111:2222::3333::4444:5555:6666]</address> |
||
357 | <valid>false</valid> |
||
358 | <comment>Too many '::' (can be none or one)</comment> |
||
359 | <source>Dominic Sayers</source> |
||
360 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
361 | <id>44</id> |
||
362 | </test> |
||
363 | <test> |
||
22 | daniel-mar | 364 | <address>first.last@[IPv6:1111:2222:3333::4444:5555:6666:7777] |
365 | </address> |
||
4 | daniel-mar | 366 | <valid>false</valid> |
367 | <comment>Too many IPv6 groups (6 max)</comment> |
||
368 | <source>Dominic Sayers</source> |
||
369 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
370 | <id>45</id> |
||
371 | </test> |
||
372 | <test> |
||
373 | <address>first.last@[IPv6:1111:2222:333x::4444:5555]</address> |
||
374 | <valid>false</valid> |
||
375 | <comment>x is not valid in an IPv6 address</comment> |
||
376 | <source>Dominic Sayers</source> |
||
377 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
378 | <id>46</id> |
||
379 | </test> |
||
380 | <test> |
||
381 | <address>first.last@[IPv6:1111:2222:33333::4444:5555]</address> |
||
382 | <valid>false</valid> |
||
383 | <comment>33333 is not a valid group in an IPv6 address</comment> |
||
384 | <source>Dominic Sayers</source> |
||
385 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
386 | <id>47</id> |
||
387 | </test> |
||
388 | <test> |
||
389 | <address>first.last@example.123</address> |
||
390 | <valid>false</valid> |
||
391 | <comment>TLD can't be all digits</comment> |
||
392 | <source>Dominic Sayers</source> |
||
393 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
394 | <id>48</id> |
||
395 | </test> |
||
396 | <test> |
||
397 | <address>first.last@com</address> |
||
398 | <valid>false</valid> |
||
399 | <comment>Mail host must be second- or lower level</comment> |
||
400 | <source>Dominic Sayers</source> |
||
401 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
402 | <id>49</id> |
||
403 | </test> |
||
404 | <test> |
||
405 | <address>first.last@-xample.com</address> |
||
406 | <valid>false</valid> |
||
407 | <comment>Label can't begin with a hyphen</comment> |
||
408 | <source>Dominic Sayers</source> |
||
409 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
410 | <id>50</id> |
||
411 | </test> |
||
412 | <test> |
||
413 | <address>first.last@exampl-.com</address> |
||
414 | <valid>false</valid> |
||
415 | <comment>Label can't end with a hyphen</comment> |
||
416 | <source>Dominic Sayers</source> |
||
417 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
418 | <id>51</id> |
||
419 | </test> |
||
420 | <test> |
||
22 | daniel-mar | 421 | <address>first.last@x234567890123456789012345678901234567890123456789012345678901234.example.com |
422 | </address> |
||
4 | daniel-mar | 423 | <valid>false</valid> |
424 | <comment>Label can't be longer than 63 octets</comment> |
||
425 | <source>Dominic Sayers</source> |
||
426 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
427 | <id>52</id> |
||
428 | </test> |
||
429 | <test> |
||
430 | <address>"Abc\@def"@example.com</address> |
||
431 | <valid>true</valid> |
||
432 | <source>RFC 3696 (February 2004)</source> |
||
433 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
434 | <id>53</id> |
||
435 | </test> |
||
436 | <test> |
||
437 | <address>"Fred\ Bloggs"@example.com</address> |
||
438 | <valid>true</valid> |
||
439 | <source>RFC 3696 (as amended by erratum 2005-07-09)</source> |
||
22 | daniel-mar | 440 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
441 | </sourcelink> |
||
4 | daniel-mar | 442 | <id>54</id> |
443 | </test> |
||
444 | <test> |
||
445 | <address>"Joe.\\Blow"@example.com</address> |
||
446 | <valid>true</valid> |
||
447 | <source>RFC 3696 (as amended by erratum 2005-07-09)</source> |
||
22 | daniel-mar | 448 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
449 | </sourcelink> |
||
4 | daniel-mar | 450 | <id>55</id> |
451 | </test> |
||
452 | <test> |
||
453 | <address>"Abc@def"@example.com</address> |
||
454 | <valid>true</valid> |
||
455 | <source>RFC 3696 (as amended by erratum 2005-07-09)</source> |
||
22 | daniel-mar | 456 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
457 | </sourcelink> |
||
4 | daniel-mar | 458 | <id>56</id> |
459 | </test> |
||
460 | <test> |
||
461 | <address>"Fred Bloggs"@example.com</address> |
||
462 | <valid>true</valid> |
||
463 | <source>RFC 3696 (February 2004)</source> |
||
464 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
465 | <id>57</id> |
||
466 | </test> |
||
467 | <test> |
||
468 | <address>user+mailbox@example.com</address> |
||
469 | <valid>true</valid> |
||
470 | <source>RFC 3696 (February 2004)</source> |
||
471 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
472 | <id>58</id> |
||
473 | </test> |
||
474 | <test> |
||
475 | <address>customer/department=shipping@example.com</address> |
||
476 | <valid>true</valid> |
||
477 | <source>RFC 3696 (February 2004)</source> |
||
478 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
479 | <id>59</id> |
||
480 | </test> |
||
481 | <test> |
||
482 | <address>$A12345@example.com</address> |
||
483 | <valid>true</valid> |
||
484 | <source>RFC 3696 (February 2004)</source> |
||
485 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
486 | <id>60</id> |
||
487 | </test> |
||
488 | <test> |
||
489 | <address>!def!xyz%abc@example.com</address> |
||
490 | <valid>true</valid> |
||
491 | <source>RFC 3696 (February 2004)</source> |
||
492 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
493 | <id>61</id> |
||
494 | </test> |
||
495 | <test> |
||
496 | <address>_somename@example.com</address> |
||
497 | <valid>true</valid> |
||
498 | <source>RFC 3696 (February 2004)</source> |
||
499 | <sourcelink>http://tools.ietf.org/html/rfc3696#section-3</sourcelink> |
||
500 | <id>62</id> |
||
501 | </test> |
||
502 | <test> |
||
503 | <address>dclo@us.ibm.com</address> |
||
504 | <valid>true</valid> |
||
505 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
506 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
507 | <id>63</id> |
||
508 | </test> |
||
509 | <test> |
||
510 | <address>abc\@def@example.com</address> |
||
511 | <valid>false</valid> |
||
22 | daniel-mar | 512 | <comment>This example from RFC 3696 was corrected in an erratum |
513 | </comment> |
||
4 | daniel-mar | 514 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
515 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
516 | <id>64</id> |
||
517 | </test> |
||
518 | <test> |
||
519 | <address>abc\\@example.com</address> |
||
520 | <valid>false</valid> |
||
22 | daniel-mar | 521 | <comment>This example from RFC 3696 was corrected in an erratum |
522 | </comment> |
||
4 | daniel-mar | 523 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
524 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
525 | <id>65</id> |
||
526 | </test> |
||
527 | <test> |
||
528 | <address>peter.piper@example.com</address> |
||
529 | <valid>true</valid> |
||
530 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
531 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
532 | <id>66</id> |
||
533 | </test> |
||
534 | <test> |
||
535 | <address>Doug\ \"Ace\"\ Lovell@example.com</address> |
||
536 | <valid>false</valid> |
||
537 | <comment>Escaping can only happen in a quoted string</comment> |
||
538 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
539 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
540 | <id>67</id> |
||
541 | </test> |
||
542 | <test> |
||
543 | <address>"Doug \"Ace\" L."@example.com</address> |
||
544 | <valid>true</valid> |
||
545 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
546 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
547 | <id>68</id> |
||
548 | </test> |
||
549 | <test> |
||
550 | <address>abc@def@example.com</address> |
||
551 | <valid>false</valid> |
||
552 | <comment>Doug Lovell says this should fail</comment> |
||
553 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
554 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
555 | <id>69</id> |
||
556 | </test> |
||
557 | <test> |
||
558 | <address>abc\\@def@example.com</address> |
||
559 | <valid>false</valid> |
||
560 | <comment>Doug Lovell says this should fail</comment> |
||
561 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
562 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
563 | <id>70</id> |
||
564 | </test> |
||
565 | <test> |
||
566 | <address>abc\@example.com</address> |
||
567 | <valid>false</valid> |
||
568 | <comment>Doug Lovell says this should fail</comment> |
||
569 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
570 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
571 | <id>71</id> |
||
572 | </test> |
||
573 | <test> |
||
574 | <address>@example.com</address> |
||
575 | <valid>false</valid> |
||
576 | <comment>No local part</comment> |
||
577 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
578 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
579 | <id>72</id> |
||
580 | </test> |
||
581 | <test> |
||
582 | <address>doug@</address> |
||
583 | <valid>false</valid> |
||
584 | <comment>Doug Lovell says this should fail</comment> |
||
585 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
586 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
587 | <id>73</id> |
||
588 | </test> |
||
589 | <test> |
||
590 | <address>"qu@example.com</address> |
||
591 | <valid>false</valid> |
||
592 | <comment>Doug Lovell says this should fail</comment> |
||
593 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
594 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
595 | <id>74</id> |
||
596 | </test> |
||
597 | <test> |
||
598 | <address>ote"@example.com</address> |
||
599 | <valid>false</valid> |
||
600 | <comment>Doug Lovell says this should fail</comment> |
||
601 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
602 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
603 | <id>75</id> |
||
604 | </test> |
||
605 | <test> |
||
606 | <address>.dot@example.com</address> |
||
607 | <valid>false</valid> |
||
608 | <comment>Doug Lovell says this should fail</comment> |
||
609 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
610 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
611 | <id>76</id> |
||
612 | </test> |
||
613 | <test> |
||
614 | <address>dot.@example.com</address> |
||
615 | <valid>false</valid> |
||
616 | <comment>Doug Lovell says this should fail</comment> |
||
617 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
618 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
619 | <id>77</id> |
||
620 | </test> |
||
621 | <test> |
||
622 | <address>two..dot@example.com</address> |
||
623 | <valid>false</valid> |
||
624 | <comment>Doug Lovell says this should fail</comment> |
||
625 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
626 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
627 | <id>78</id> |
||
628 | </test> |
||
629 | <test> |
||
630 | <address>"Doug "Ace" L."@example.com</address> |
||
631 | <valid>false</valid> |
||
632 | <comment>Doug Lovell says this should fail</comment> |
||
633 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
634 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
635 | <id>79</id> |
||
636 | </test> |
||
637 | <test> |
||
638 | <address>Doug\ \"Ace\"\ L\.@example.com</address> |
||
639 | <valid>false</valid> |
||
640 | <comment>Doug Lovell says this should fail</comment> |
||
641 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
642 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
643 | <id>80</id> |
||
644 | </test> |
||
645 | <test> |
||
646 | <address>hello world@example.com</address> |
||
647 | <valid>false</valid> |
||
648 | <comment>Doug Lovell says this should fail</comment> |
||
649 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
650 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
651 | <id>81</id> |
||
652 | </test> |
||
653 | <test> |
||
654 | <address>gatsby@f.sc.ot.t.f.i.tzg.era.l.d.</address> |
||
655 | <valid>false</valid> |
||
656 | <comment>Doug Lovell says this should fail</comment> |
||
657 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
||
658 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
659 | <id>82</id> |
||
660 | </test> |
||
661 | <test> |
||
662 | <valid>true</valid> |
||
663 | <address>test@example.com</address> |
||
664 | <source>Dave Child</source> |
||
22 | daniel-mar | 665 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
666 | </sourcelink> |
||
4 | daniel-mar | 667 | <id>83</id> |
668 | </test> |
||
669 | <test> |
||
670 | <valid>true</valid> |
||
671 | <address>TEST@example.com</address> |
||
672 | <source>Dave Child</source> |
||
22 | daniel-mar | 673 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
674 | </sourcelink> |
||
4 | daniel-mar | 675 | <id>84</id> |
676 | </test> |
||
677 | <test> |
||
678 | <valid>true</valid> |
||
679 | <address>1234567890@example.com</address> |
||
680 | <source>Dave Child</source> |
||
22 | daniel-mar | 681 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
682 | </sourcelink> |
||
4 | daniel-mar | 683 | <id>85</id> |
684 | </test> |
||
685 | <test> |
||
686 | <valid>true</valid> |
||
687 | <address>test+test@example.com</address> |
||
688 | <source>Dave Child</source> |
||
22 | daniel-mar | 689 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
690 | </sourcelink> |
||
4 | daniel-mar | 691 | <id>86</id> |
692 | </test> |
||
693 | <test> |
||
694 | <valid>true</valid> |
||
695 | <address>test-test@example.com</address> |
||
696 | <source>Dave Child</source> |
||
22 | daniel-mar | 697 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
698 | </sourcelink> |
||
4 | daniel-mar | 699 | <id>87</id> |
700 | </test> |
||
701 | <test> |
||
702 | <valid>true</valid> |
||
703 | <address>t*est@example.com</address> |
||
704 | <source>Dave Child</source> |
||
22 | daniel-mar | 705 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
706 | </sourcelink> |
||
4 | daniel-mar | 707 | <id>88</id> |
708 | </test> |
||
709 | <test> |
||
710 | <valid>true</valid> |
||
711 | <address>+1~1+@example.com</address> |
||
712 | <source>Dave Child</source> |
||
22 | daniel-mar | 713 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
714 | </sourcelink> |
||
4 | daniel-mar | 715 | <id>89</id> |
716 | </test> |
||
717 | <test> |
||
718 | <valid>true</valid> |
||
719 | <address>{_test_}@example.com</address> |
||
720 | <source>Dave Child</source> |
||
22 | daniel-mar | 721 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
722 | </sourcelink> |
||
4 | daniel-mar | 723 | <id>90</id> |
724 | </test> |
||
725 | <test> |
||
726 | <valid>true</valid> |
||
727 | <address>"[[ test ]]"@example.com</address> |
||
728 | <source>Dave Child</source> |
||
22 | daniel-mar | 729 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
730 | </sourcelink> |
||
4 | daniel-mar | 731 | <id>91</id> |
732 | </test> |
||
733 | <test> |
||
734 | <valid>true</valid> |
||
735 | <address>test.test@example.com</address> |
||
736 | <source>Dave Child</source> |
||
22 | daniel-mar | 737 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
738 | </sourcelink> |
||
4 | daniel-mar | 739 | <id>92</id> |
740 | </test> |
||
741 | <test> |
||
742 | <valid>true</valid> |
||
743 | <address>"test.test"@example.com</address> |
||
744 | <source>Dave Child</source> |
||
22 | daniel-mar | 745 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
746 | </sourcelink> |
||
4 | daniel-mar | 747 | <id>93</id> |
748 | </test> |
||
749 | <test> |
||
750 | <valid>true</valid> |
||
751 | <address>test."test"@example.com</address> |
||
752 | <comment>Obsolete form, but documented in RFC 5322</comment> |
||
753 | <source>Dave Child</source> |
||
22 | daniel-mar | 754 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
755 | </sourcelink> |
||
4 | daniel-mar | 756 | <id>94</id> |
757 | </test> |
||
758 | <test> |
||
759 | <valid>true</valid> |
||
760 | <address>"test@test"@example.com</address> |
||
761 | <source>Dave Child</source> |
||
22 | daniel-mar | 762 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
763 | </sourcelink> |
||
4 | daniel-mar | 764 | <id>95</id> |
765 | </test> |
||
766 | <test> |
||
767 | <valid>true</valid> |
||
768 | <address>test@123.123.123.x123</address> |
||
769 | <source>Dave Child</source> |
||
22 | daniel-mar | 770 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
771 | </sourcelink> |
||
4 | daniel-mar | 772 | <id>96</id> |
773 | </test> |
||
774 | <test> |
||
775 | <valid>false</valid> |
||
776 | <address>test@123.123.123.123</address> |
||
22 | daniel-mar | 777 | <comment>Top Level Domain won't be all-numeric (see RFC 3696 Section |
778 | 2). I disagree with Dave Child on this one.</comment> |
||
4 | daniel-mar | 779 | <source>Dave Child</source> |
22 | daniel-mar | 780 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
781 | </sourcelink> |
||
4 | daniel-mar | 782 | <id>97</id> |
783 | </test> |
||
784 | <test> |
||
785 | <valid>true</valid> |
||
786 | <address>test@[123.123.123.123]</address> |
||
787 | <source>Dave Child</source> |
||
22 | daniel-mar | 788 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
789 | </sourcelink> |
||
4 | daniel-mar | 790 | <id>98</id> |
791 | </test> |
||
792 | <test> |
||
793 | <valid>true</valid> |
||
794 | <address>test@example.example.com</address> |
||
795 | <source>Dave Child</source> |
||
22 | daniel-mar | 796 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
797 | </sourcelink> |
||
4 | daniel-mar | 798 | <id>99</id> |
799 | </test> |
||
800 | <test> |
||
801 | <valid>true</valid> |
||
802 | <address>test@example.example.example.com</address> |
||
803 | <source>Dave Child</source> |
||
22 | daniel-mar | 804 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
805 | </sourcelink> |
||
4 | daniel-mar | 806 | <id>100</id> |
807 | </test> |
||
808 | <test> |
||
809 | <valid>false</valid> |
||
810 | <address>test.example.com</address> |
||
811 | <source>Dave Child</source> |
||
22 | daniel-mar | 812 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
813 | </sourcelink> |
||
4 | daniel-mar | 814 | <id>101</id> |
815 | </test> |
||
816 | <test> |
||
817 | <valid>false</valid> |
||
818 | <address>test.@example.com</address> |
||
819 | <source>Dave Child</source> |
||
22 | daniel-mar | 820 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
821 | </sourcelink> |
||
4 | daniel-mar | 822 | <id>102</id> |
823 | </test> |
||
824 | <test> |
||
825 | <valid>false</valid> |
||
826 | <address>test..test@example.com</address> |
||
827 | <source>Dave Child</source> |
||
22 | daniel-mar | 828 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
829 | </sourcelink> |
||
4 | daniel-mar | 830 | <id>103</id> |
831 | </test> |
||
832 | <test> |
||
833 | <valid>false</valid> |
||
834 | <address>.test@example.com</address> |
||
835 | <source>Dave Child</source> |
||
22 | daniel-mar | 836 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
837 | </sourcelink> |
||
4 | daniel-mar | 838 | <id>104</id> |
839 | </test> |
||
840 | <test> |
||
841 | <valid>false</valid> |
||
842 | <address>test@test@example.com</address> |
||
843 | <source>Dave Child</source> |
||
22 | daniel-mar | 844 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
845 | </sourcelink> |
||
4 | daniel-mar | 846 | <id>105</id> |
847 | </test> |
||
848 | <test> |
||
849 | <valid>false</valid> |
||
850 | <address>test@@example.com</address> |
||
851 | <source>Dave Child</source> |
||
22 | daniel-mar | 852 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
853 | </sourcelink> |
||
4 | daniel-mar | 854 | <id>106</id> |
855 | </test> |
||
856 | <test> |
||
857 | <valid>false</valid> |
||
858 | <address>-- test --@example.com</address> |
||
859 | <comment>No spaces allowed in local part</comment> |
||
860 | <source>Dave Child</source> |
||
22 | daniel-mar | 861 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
862 | </sourcelink> |
||
4 | daniel-mar | 863 | <id>107</id> |
864 | </test> |
||
865 | <test> |
||
866 | <valid>false</valid> |
||
867 | <address>[test]@example.com</address> |
||
868 | <comment>Square brackets only allowed within quotes</comment> |
||
869 | <source>Dave Child</source> |
||
22 | daniel-mar | 870 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
871 | </sourcelink> |
||
4 | daniel-mar | 872 | <id>108</id> |
873 | </test> |
||
874 | <test> |
||
875 | <valid>true</valid> |
||
876 | <address>"test\test"@example.com</address> |
||
877 | <comment>Any character can be escaped in a quoted string</comment> |
||
878 | <source>Dave Child</source> |
||
22 | daniel-mar | 879 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
880 | </sourcelink> |
||
4 | daniel-mar | 881 | <id>109</id> |
882 | </test> |
||
883 | <test> |
||
884 | <valid>false</valid> |
||
885 | <address>"test"test"@example.com</address> |
||
886 | <comment>Quotes cannot be nested</comment> |
||
887 | <source>Dave Child</source> |
||
22 | daniel-mar | 888 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
889 | </sourcelink> |
||
4 | daniel-mar | 890 | <id>110</id> |
891 | </test> |
||
892 | <test> |
||
893 | <valid>false</valid> |
||
894 | <address>()[]\;:,><@example.com</address> |
||
895 | <comment>Disallowed Characters</comment> |
||
896 | <source>Dave Child</source> |
||
22 | daniel-mar | 897 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
898 | </sourcelink> |
||
4 | daniel-mar | 899 | <id>111</id> |
900 | </test> |
||
901 | <test> |
||
902 | <valid>false</valid> |
||
903 | <comment>Dave Child says so</comment> |
||
904 | <address>test@.</address> |
||
905 | <source>Dave Child</source> |
||
22 | daniel-mar | 906 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
907 | </sourcelink> |
||
4 | daniel-mar | 908 | <id>112</id> |
909 | </test> |
||
910 | <test> |
||
911 | <valid>false</valid> |
||
912 | <comment>Dave Child says so</comment> |
||
913 | <address>test@example.</address> |
||
914 | <source>Dave Child</source> |
||
22 | daniel-mar | 915 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
916 | </sourcelink> |
||
4 | daniel-mar | 917 | <id>113</id> |
918 | </test> |
||
919 | <test> |
||
920 | <valid>false</valid> |
||
921 | <comment>Dave Child says so</comment> |
||
922 | <address>test@.org</address> |
||
923 | <source>Dave Child</source> |
||
22 | daniel-mar | 924 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
925 | </sourcelink> |
||
4 | daniel-mar | 926 | <id>114</id> |
927 | </test> |
||
928 | <test> |
||
929 | <valid>false</valid> |
||
22 | daniel-mar | 930 | <address>test@123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com |
931 | </address> |
||
932 | <comment>255 characters is maximum length for domain. This is 256. |
||
933 | </comment> |
||
4 | daniel-mar | 934 | <source>Dave Child</source> |
22 | daniel-mar | 935 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
936 | </sourcelink> |
||
4 | daniel-mar | 937 | <id>115</id> |
938 | </test> |
||
939 | <test> |
||
940 | <valid>false</valid> |
||
941 | <comment>Dave Child says so</comment> |
||
942 | <address>test@example</address> |
||
943 | <source>Dave Child</source> |
||
22 | daniel-mar | 944 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
945 | </sourcelink> |
||
4 | daniel-mar | 946 | <id>116</id> |
947 | </test> |
||
948 | <test> |
||
949 | <valid>false</valid> |
||
950 | <comment>Dave Child says so</comment> |
||
951 | <address>test@[123.123.123.123</address> |
||
952 | <source>Dave Child</source> |
||
22 | daniel-mar | 953 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
954 | </sourcelink> |
||
4 | daniel-mar | 955 | <id>117</id> |
956 | </test> |
||
957 | <test> |
||
958 | <valid>false</valid> |
||
959 | <comment>Dave Child says so</comment> |
||
960 | <address>test@123.123.123.123]</address> |
||
961 | <source>Dave Child</source> |
||
22 | daniel-mar | 962 | <sourcelink>http://code.google.com/p/php-email-address-validation/ |
963 | </sourcelink> |
||
4 | daniel-mar | 964 | <id>118</id> |
965 | </test> |
||
966 | <test> |
||
967 | <address>NotAnEmail</address> |
||
968 | <valid>false</valid> |
||
969 | <comment>Phil Haack says so</comment> |
||
970 | <source>Phil Haack</source> |
||
22 | daniel-mar | 971 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
972 | </sourcelink> |
||
4 | daniel-mar | 973 | <id>119</id> |
974 | </test> |
||
975 | <test> |
||
976 | <address>@NotAnEmail</address> |
||
977 | <valid>false</valid> |
||
978 | <comment>Phil Haack says so</comment> |
||
979 | <source>Phil Haack</source> |
||
22 | daniel-mar | 980 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
981 | </sourcelink> |
||
4 | daniel-mar | 982 | <id>120</id> |
983 | </test> |
||
984 | <test> |
||
985 | <address>"test\\blah"@example.com</address> |
||
986 | <valid>true</valid> |
||
987 | <source>Phil Haack</source> |
||
22 | daniel-mar | 988 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
989 | </sourcelink> |
||
4 | daniel-mar | 990 | <id>121</id> |
991 | </test> |
||
992 | <test> |
||
993 | <address>"test\blah"@example.com</address> |
||
994 | <valid>true</valid> |
||
995 | <comment>Any character can be escaped in a quoted string</comment> |
||
996 | <source>Phil Haack</source> |
||
22 | daniel-mar | 997 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
998 | </sourcelink> |
||
4 | daniel-mar | 999 | <id>122</id> |
1000 | </test> |
||
1001 | <test> |
||
1002 | <address>"test\ blah"@example.com</address> |
||
1003 | <valid>true</valid> |
||
22 | daniel-mar | 1004 | <comment>Quoted string specifically excludes carriage returns unless |
1005 | escaped</comment> |
||
4 | daniel-mar | 1006 | <source>Phil Haack</source> |
22 | daniel-mar | 1007 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1008 | </sourcelink> |
||
4 | daniel-mar | 1009 | <id>123</id> |
1010 | </test> |
||
1011 | <test> |
||
1012 | <address>"test blah"@example.com</address> |
||
1013 | <valid>false</valid> |
||
22 | daniel-mar | 1014 | <comment>Quoted string specifically excludes carriage returns |
1015 | </comment> |
||
4 | daniel-mar | 1016 | <source>Phil Haack</source> |
22 | daniel-mar | 1017 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1018 | </sourcelink> |
||
4 | daniel-mar | 1019 | <id>124</id> |
1020 | </test> |
||
1021 | <test> |
||
1022 | <address>"test\"blah"@example.com</address> |
||
1023 | <valid>true</valid> |
||
1024 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1025 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1026 | </sourcelink> |
||
4 | daniel-mar | 1027 | <id>125</id> |
1028 | </test> |
||
1029 | <test> |
||
1030 | <address>"test"blah"@example.com</address> |
||
1031 | <valid>false</valid> |
||
1032 | <comment>Phil Haack says so</comment> |
||
1033 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1034 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1035 | </sourcelink> |
||
4 | daniel-mar | 1036 | <id>126</id> |
1037 | </test> |
||
1038 | <test> |
||
1039 | <address>customer/department@example.com</address> |
||
1040 | <valid>true</valid> |
||
1041 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1042 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1043 | </sourcelink> |
||
4 | daniel-mar | 1044 | <id>127</id> |
1045 | </test> |
||
1046 | <test> |
||
1047 | <address>_Yosemite.Sam@example.com</address> |
||
1048 | <valid>true</valid> |
||
1049 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1050 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1051 | </sourcelink> |
||
4 | daniel-mar | 1052 | <id>128</id> |
1053 | </test> |
||
1054 | <test> |
||
1055 | <address>~@example.com</address> |
||
1056 | <valid>true</valid> |
||
1057 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1058 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1059 | </sourcelink> |
||
4 | daniel-mar | 1060 | <id>129</id> |
1061 | </test> |
||
1062 | <test> |
||
1063 | <address>.wooly@example.com</address> |
||
1064 | <valid>false</valid> |
||
1065 | <comment>Phil Haack says so</comment> |
||
1066 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1067 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1068 | </sourcelink> |
||
4 | daniel-mar | 1069 | <id>130</id> |
1070 | </test> |
||
1071 | <test> |
||
1072 | <address>wo..oly@example.com</address> |
||
1073 | <valid>false</valid> |
||
1074 | <comment>Phil Haack says so</comment> |
||
1075 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1076 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1077 | </sourcelink> |
||
4 | daniel-mar | 1078 | <id>131</id> |
1079 | </test> |
||
1080 | <test> |
||
1081 | <address>pootietang.@example.com</address> |
||
1082 | <valid>false</valid> |
||
1083 | <comment>Phil Haack says so</comment> |
||
1084 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1085 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1086 | </sourcelink> |
||
4 | daniel-mar | 1087 | <id>132</id> |
1088 | </test> |
||
1089 | <test> |
||
1090 | <address>.@example.com</address> |
||
1091 | <valid>false</valid> |
||
1092 | <comment>Phil Haack says so</comment> |
||
1093 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1094 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1095 | </sourcelink> |
||
4 | daniel-mar | 1096 | <id>133</id> |
1097 | </test> |
||
1098 | <test> |
||
1099 | <address>"Austin@Powers"@example.com</address> |
||
1100 | <valid>true</valid> |
||
1101 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1102 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1103 | </sourcelink> |
||
4 | daniel-mar | 1104 | <id>134</id> |
1105 | </test> |
||
1106 | <test> |
||
1107 | <address>Ima.Fool@example.com</address> |
||
1108 | <valid>true</valid> |
||
1109 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1110 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1111 | </sourcelink> |
||
4 | daniel-mar | 1112 | <id>135</id> |
1113 | </test> |
||
1114 | <test> |
||
1115 | <address>"Ima.Fool"@example.com</address> |
||
1116 | <valid>true</valid> |
||
1117 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1118 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1119 | </sourcelink> |
||
4 | daniel-mar | 1120 | <id>136</id> |
1121 | </test> |
||
1122 | <test> |
||
1123 | <address>"Ima Fool"@example.com</address> |
||
1124 | <valid>true</valid> |
||
1125 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1126 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1127 | </sourcelink> |
||
4 | daniel-mar | 1128 | <id>137</id> |
1129 | </test> |
||
1130 | <test> |
||
1131 | <address>Ima Fool@example.com</address> |
||
1132 | <valid>false</valid> |
||
1133 | <comment>Phil Haack says so</comment> |
||
1134 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1135 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1136 | </sourcelink> |
||
4 | daniel-mar | 1137 | <id>138</id> |
1138 | </test> |
||
1139 | <test> |
||
1140 | <address>phil.h\@\@ck@haacked.com</address> |
||
1141 | <valid>false</valid> |
||
1142 | <comment>Escaping can only happen in a quoted string</comment> |
||
1143 | <source>Phil Haack</source> |
||
22 | daniel-mar | 1144 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1145 | </sourcelink> |
||
4 | daniel-mar | 1146 | <id>139</id> |
1147 | </test> |
||
1148 | <test> |
||
1149 | <address>"first"."last"@example.com</address> |
||
1150 | <valid>true</valid> |
||
1151 | <source>Dominic Sayers</source> |
||
1152 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1153 | <id>140</id> |
||
1154 | </test> |
||
1155 | <test> |
||
1156 | <address>"first".middle."last"@example.com</address> |
||
1157 | <valid>true</valid> |
||
1158 | <source>Dominic Sayers</source> |
||
1159 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1160 | <id>141</id> |
||
1161 | </test> |
||
1162 | <test> |
||
1163 | <address>"first\\"last"@example.com</address> |
||
1164 | <valid>false</valid> |
||
1165 | <comment>Contains an unescaped quote</comment> |
||
1166 | <source>Dominic Sayers</source> |
||
1167 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1168 | <id>142</id> |
||
1169 | </test> |
||
1170 | <test> |
||
1171 | <address>"first".last@example.com</address> |
||
1172 | <valid>true</valid> |
||
1173 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1174 | <source>Dominic Sayers</source> |
||
1175 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1176 | <id>143</id> |
||
1177 | </test> |
||
1178 | <test> |
||
1179 | <address>first."last"@example.com</address> |
||
1180 | <valid>true</valid> |
||
1181 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1182 | <source>Dominic Sayers</source> |
||
1183 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1184 | <id>144</id> |
||
1185 | </test> |
||
1186 | <test> |
||
1187 | <address>"first"."middle"."last"@example.com</address> |
||
1188 | <valid>true</valid> |
||
1189 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1190 | <source>Dominic Sayers</source> |
||
1191 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1192 | <id>145</id> |
||
1193 | </test> |
||
1194 | <test> |
||
1195 | <address>"first.middle"."last"@example.com</address> |
||
1196 | <valid>true</valid> |
||
1197 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1198 | <source>Dominic Sayers</source> |
||
1199 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1200 | <id>146</id> |
||
1201 | </test> |
||
1202 | <test> |
||
1203 | <address>"first.middle.last"@example.com</address> |
||
1204 | <valid>true</valid> |
||
1205 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1206 | <source>Dominic Sayers</source> |
||
1207 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1208 | <id>147</id> |
||
1209 | </test> |
||
1210 | <test> |
||
1211 | <address>"first..last"@example.com</address> |
||
1212 | <valid>true</valid> |
||
1213 | <comment>obs-local-part form as described in RFC 5322</comment> |
||
1214 | <source>Dominic Sayers</source> |
||
1215 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1216 | <id>148</id> |
||
1217 | </test> |
||
1218 | <test> |
||
1219 | <address>foo@[\1.2.3.4]</address> |
||
1220 | <valid>false</valid> |
||
22 | daniel-mar | 1221 | <comment>RFC 5321 specifies the syntax for address-literal and does |
1222 | not allow escaping</comment> |
||
4 | daniel-mar | 1223 | <source>Cal Henderson</source> |
1224 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1225 | <id>149</id> |
||
1226 | </test> |
||
1227 | <test> |
||
1228 | <address>"first\\\"last"@example.com</address> |
||
1229 | <valid>true</valid> |
||
1230 | <source>Dominic Sayers</source> |
||
1231 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1232 | <id>150</id> |
||
1233 | </test> |
||
1234 | <test> |
||
1235 | <address>first."mid\dle"."last"@example.com</address> |
||
1236 | <valid>true</valid> |
||
22 | daniel-mar | 1237 | <comment>Backslash can escape anything but must escape something |
1238 | </comment> |
||
4 | daniel-mar | 1239 | <source>Dominic Sayers</source> |
1240 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1241 | <id>151</id> |
||
1242 | </test> |
||
1243 | <test> |
||
22 | daniel-mar | 1244 | <address>Test. Folding. Whitespace@example.com |
1245 | </address> |
||
4 | daniel-mar | 1246 | <valid>true</valid> |
1247 | <source>Dominic Sayers</source> |
||
1248 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1249 | <id>152</id> |
||
1250 | </test> |
||
1251 | <test> |
||
1252 | <address>first."".last@example.com</address> |
||
1253 | <valid>false</valid> |
||
1254 | <comment>Contains a zero-length element</comment> |
||
1255 | <source>Dominic Sayers</source> |
||
1256 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1257 | <id>153</id> |
||
1258 | </test> |
||
1259 | <test> |
||
1260 | <address>first\last@example.com</address> |
||
1261 | <valid>false</valid> |
||
1262 | <comment>Unquoted string must be an atom</comment> |
||
1263 | <source>Dominic Sayers</source> |
||
1264 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1265 | <id>154</id> |
||
1266 | </test> |
||
1267 | <test> |
||
1268 | <address>Abc\@def@example.com</address> |
||
1269 | <valid>false</valid> |
||
22 | daniel-mar | 1270 | <comment>Was incorrectly given as a valid address in the original RFC |
1271 | 3696</comment> |
||
4 | daniel-mar | 1272 | <source>RFC 3696 erratum 246</source> |
22 | daniel-mar | 1273 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
1274 | </sourcelink> |
||
4 | daniel-mar | 1275 | <id>155</id> |
1276 | </test> |
||
1277 | <test> |
||
1278 | <address>Fred\ Bloggs@example.com</address> |
||
1279 | <valid>false</valid> |
||
22 | daniel-mar | 1280 | <comment>Was incorrectly given as a valid address in the original RFC |
1281 | 3696</comment> |
||
4 | daniel-mar | 1282 | <source>RFC 3696 erratum 246</source> |
22 | daniel-mar | 1283 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
1284 | </sourcelink> |
||
4 | daniel-mar | 1285 | <id>156</id> |
1286 | </test> |
||
1287 | <test> |
||
1288 | <address>Joe.\\Blow@example.com</address> |
||
1289 | <valid>false</valid> |
||
22 | daniel-mar | 1290 | <comment>Was incorrectly given as a valid address in the original RFC |
1291 | 3696</comment> |
||
4 | daniel-mar | 1292 | <source>RFC 3696 erratum 246</source> |
22 | daniel-mar | 1293 | <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=246 |
1294 | </sourcelink> |
||
4 | daniel-mar | 1295 | <id>157</id> |
1296 | </test> |
||
1297 | <test> |
||
22 | daniel-mar | 1298 | <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.567.89] |
1299 | </address> |
||
4 | daniel-mar | 1300 | <valid>false</valid> |
1301 | <comment>IPv4 part contains an invalid octet</comment> |
||
1302 | <source>Cal Henderson</source> |
||
1303 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1304 | <id>158</id> |
||
1305 | </test> |
||
1306 | <test> |
||
1307 | <address>"test\ blah"@example.com</address> |
||
1308 | <valid>false</valid> |
||
22 | daniel-mar | 1309 | <comment>Folding white space can't appear within a quoted pair |
1310 | </comment> |
||
4 | daniel-mar | 1311 | <source>Cal Henderson</source> |
1312 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1313 | <id>159</id> |
||
1314 | </test> |
||
1315 | <test> |
||
1316 | <address>"test blah"@example.com</address> |
||
1317 | <valid>true</valid> |
||
22 | daniel-mar | 1318 | <comment>This is a valid quoted string with folding white space |
1319 | </comment> |
||
4 | daniel-mar | 1320 | <source>Phil Haack</source> |
22 | daniel-mar | 1321 | <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx |
1322 | </sourcelink> |
||
4 | daniel-mar | 1323 | <id>160</id> |
1324 | </test> |
||
1325 | <test> |
||
1326 | <address>{^c\@**Dog^}@cartoon.com</address> |
||
1327 | <valid>false</valid> |
||
22 | daniel-mar | 1328 | <comment>This is a throwaway example from Doug Lovell's article. |
1329 | Actually it's not a valid address.</comment> |
||
4 | daniel-mar | 1330 | <source>Doug Lovell (LinuxJournal, June 2007)</source> |
1331 | <sourcelink>http://www.linuxjournal.com/article/9585</sourcelink> |
||
1332 | <id>161</id> |
||
1333 | </test> |
||
1334 | <test> |
||
1335 | <address>(foo)cal(bar)@(baz)iamcal.com(quux)</address> |
||
1336 | <valid>true</valid> |
||
1337 | <comment>A valid address containing comments</comment> |
||
1338 | <source>Cal Henderson</source> |
||
1339 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1340 | <id>162</id> |
||
1341 | </test> |
||
1342 | <test> |
||
1343 | <address>cal@iamcal(woo).(yay)com</address> |
||
1344 | <valid>true</valid> |
||
1345 | <comment>A valid address containing comments</comment> |
||
1346 | <source>Cal Henderson</source> |
||
1347 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1348 | <id>163</id> |
||
1349 | </test> |
||
1350 | <test> |
||
1351 | <address>"foo"(yay)@(hoopla)[1.2.3.4]</address> |
||
1352 | <valid>false</valid> |
||
1353 | <comment>Address literal can't be commented (RFC 5321)</comment> |
||
1354 | <source>Cal Henderson</source> |
||
1355 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1356 | <id>164</id> |
||
1357 | </test> |
||
1358 | <test> |
||
1359 | <address>cal(woo(yay)hoopla)@iamcal.com</address> |
||
1360 | <valid>true</valid> |
||
1361 | <comment>A valid address containing comments</comment> |
||
1362 | <source>Cal Henderson</source> |
||
1363 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1364 | <id>165</id> |
||
1365 | </test> |
||
1366 | <test> |
||
1367 | <address>cal(foo\@bar)@iamcal.com</address> |
||
1368 | <valid>true</valid> |
||
1369 | <comment>A valid address containing comments</comment> |
||
1370 | <source>Cal Henderson</source> |
||
1371 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1372 | <id>166</id> |
||
1373 | </test> |
||
1374 | <test> |
||
1375 | <address>cal(foo\)bar)@iamcal.com</address> |
||
1376 | <valid>true</valid> |
||
22 | daniel-mar | 1377 | <comment>A valid address containing comments and an escaped |
1378 | parenthesis</comment> |
||
4 | daniel-mar | 1379 | <source>Cal Henderson</source> |
1380 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1381 | <id>167</id> |
||
1382 | </test> |
||
1383 | <test> |
||
1384 | <address>cal(foo(bar)@iamcal.com</address> |
||
1385 | <valid>false</valid> |
||
1386 | <comment>Unclosed parenthesis in comment</comment> |
||
1387 | <source>Cal Henderson</source> |
||
1388 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1389 | <id>168</id> |
||
1390 | </test> |
||
1391 | <test> |
||
1392 | <address>cal(foo)bar)@iamcal.com</address> |
||
1393 | <valid>false</valid> |
||
1394 | <comment>Too many closing parentheses</comment> |
||
1395 | <source>Cal Henderson</source> |
||
1396 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1397 | <id>169</id> |
||
1398 | </test> |
||
1399 | <test> |
||
1400 | <address>cal(foo\)@iamcal.com</address> |
||
1401 | <valid>false</valid> |
||
1402 | <comment>Backslash at end of comment has nothing to escape</comment> |
||
1403 | <source>Cal Henderson</source> |
||
1404 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1405 | <id>170</id> |
||
1406 | </test> |
||
1407 | <test> |
||
1408 | <address>first().last@example.com</address> |
||
1409 | <valid>true</valid> |
||
1410 | <comment>A valid address containing an empty comment</comment> |
||
1411 | <source>Dominic Sayers</source> |
||
1412 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1413 | <id>171</id> |
||
1414 | </test> |
||
1415 | <test> |
||
22 | daniel-mar | 1416 | <address>first.( middle )last@example.com |
1417 | </address> |
||
4 | daniel-mar | 1418 | <valid>true</valid> |
1419 | <comment>Comment with folding white space</comment> |
||
1420 | <source>Dominic Sayers</source> |
||
1421 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1422 | <id>172</id> |
||
1423 | </test> |
||
1424 | <test> |
||
22 | daniel-mar | 1425 | <address>first(12345678901234567890123456789012345678901234567890)last@(1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)example.com |
1426 | </address> |
||
4 | daniel-mar | 1427 | <valid>false</valid> |
1428 | <comment>Too long with comments, not too long without</comment> |
||
1429 | <source>Dominic Sayers</source> |
||
1430 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1431 | <id>173</id> |
||
1432 | </test> |
||
1433 | <test> |
||
22 | daniel-mar | 1434 | <address>first(Welcome to the ("wonderful" (!)) |
1435 | world of email)@example.com</address> |
||
4 | daniel-mar | 1436 | <valid>true</valid> |
1437 | <comment>Silly example from my blog post</comment> |
||
1438 | <source>Dominic Sayers</source> |
||
1439 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1440 | <id>174</id> |
||
1441 | </test> |
||
1442 | <test> |
||
1443 | <address>pete(his account)@silly.test(his host)</address> |
||
1444 | <valid>true</valid> |
||
1445 | <comment>Canonical example from RFC 5322</comment> |
||
1446 | <source>RFC 5322</source> |
||
1447 | <sourcelink>http://tools.ietf.org/html/rfc5322</sourcelink> |
||
1448 | <id>175</id> |
||
1449 | </test> |
||
1450 | <test> |
||
1451 | <address>c@(Chris's host.)public.example</address> |
||
1452 | <valid>true</valid> |
||
1453 | <comment>Canonical example from RFC 5322</comment> |
||
1454 | <source>RFC 5322</source> |
||
1455 | <sourcelink>http://tools.ietf.org/html/rfc5322</sourcelink> |
||
1456 | <id>176</id> |
||
1457 | </test> |
||
1458 | <test> |
||
22 | daniel-mar | 1459 | <address>jdoe@machine(comment). example</address> |
4 | daniel-mar | 1460 | <valid>true</valid> |
1461 | <comment>Canonical example from RFC 5322</comment> |
||
1462 | <source>RFC 5322</source> |
||
1463 | <sourcelink>http://tools.ietf.org/html/rfc5322</sourcelink> |
||
1464 | <id>177</id> |
||
1465 | </test> |
||
1466 | <test> |
||
22 | daniel-mar | 1467 | <address>1234 @ local(blah) .machine .example</address> |
4 | daniel-mar | 1468 | <valid>true</valid> |
1469 | <comment>Canonical example from RFC 5322</comment> |
||
1470 | <source>RFC 5322</source> |
||
1471 | <sourcelink>http://tools.ietf.org/html/rfc5322</sourcelink> |
||
1472 | <id>178</id> |
||
1473 | </test> |
||
1474 | <test> |
||
1475 | <address>first(middle)last@example.com</address> |
||
1476 | <valid>false</valid> |
||
22 | daniel-mar | 1477 | <comment>Can't have a comment or white space except at an element |
1478 | boundary</comment> |
||
4 | daniel-mar | 1479 | <source>Dominic Sayers</source> |
1480 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1481 | <id>179</id> |
||
1482 | </test> |
||
1483 | <test> |
||
1484 | <address>first(abc.def).last@example.com</address> |
||
1485 | <valid>true</valid> |
||
1486 | <comment>Comment can contain a dot</comment> |
||
1487 | <source>Dominic Sayers</source> |
||
1488 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1489 | <id>180</id> |
||
1490 | </test> |
||
1491 | <test> |
||
1492 | <address>first(a"bc.def).last@example.com</address> |
||
1493 | <valid>true</valid> |
||
1494 | <comment>Comment can contain double quote</comment> |
||
1495 | <source>Dominic Sayers</source> |
||
1496 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1497 | <id>181</id> |
||
1498 | </test> |
||
1499 | <test> |
||
1500 | <address>first.(")middle.last(")@example.com</address> |
||
1501 | <valid>true</valid> |
||
1502 | <comment>Comment can contain a quote</comment> |
||
1503 | <source>Dominic Sayers</source> |
||
1504 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1505 | <id>182</id> |
||
1506 | </test> |
||
1507 | <test> |
||
22 | daniel-mar | 1508 | <address>first(abc("def".ghi).mno)middle(abc("def".ghi).mno).last@(abc("def".ghi).mno)example(abc("def".ghi).mno).(abc("def".ghi).mno)com(abc("def".ghi).mno) |
1509 | </address> |
||
4 | daniel-mar | 1510 | <valid>false</valid> |
22 | daniel-mar | 1511 | <comment>Can't have comments or white space except at an element |
1512 | boundary</comment> |
||
4 | daniel-mar | 1513 | <source>Dominic Sayers</source> |
1514 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1515 | <id>183</id> |
||
1516 | </test> |
||
1517 | <test> |
||
1518 | <address>first(abc\(def)@example.com</address> |
||
1519 | <valid>true</valid> |
||
1520 | <comment>Comment can contain quoted-pair</comment> |
||
1521 | <source>Dominic Sayers</source> |
||
1522 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1523 | <id>184</id> |
||
1524 | </test> |
||
1525 | <test> |
||
22 | daniel-mar | 1526 | <address>first.last@x(1234567890123456789012345678901234567890123456789012345678901234567890).com |
1527 | </address> |
||
4 | daniel-mar | 1528 | <valid>true</valid> |
22 | daniel-mar | 1529 | <comment>Label is longer than 63 octets, but not with comment removed |
1530 | </comment> |
||
4 | daniel-mar | 1531 | <source>Cal Henderson</source> |
1532 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1533 | <id>185</id> |
||
1534 | </test> |
||
1535 | <test> |
||
1536 | <address>a(a(b(c)d(e(f))g)h(i)j)@example.com</address> |
||
1537 | <valid>true</valid> |
||
1538 | <source>Cal Henderson</source> |
||
1539 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1540 | <id>186</id> |
||
1541 | </test> |
||
1542 | <test> |
||
1543 | <address>a(a(b(c)d(e(f))g)(h(i)j)@example.com</address> |
||
1544 | <valid>false</valid> |
||
1545 | <comment>Braces are not properly matched</comment> |
||
1546 | <source>Cal Henderson</source> |
||
1547 | <sourcelink>http://code.iamcal.com/php/rfc822/</sourcelink> |
||
1548 | <id>187</id> |
||
1549 | </test> |
||
1550 | <test> |
||
1551 | <address>name.lastname@domain.com</address> |
||
1552 | <valid>true</valid> |
||
1553 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1554 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1555 | </sourcelink> |
||
4 | daniel-mar | 1556 | <id>188</id> |
1557 | </test> |
||
1558 | <test> |
||
1559 | <address>.@</address> |
||
1560 | <valid>false</valid> |
||
1561 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1562 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1563 | </sourcelink> |
||
4 | daniel-mar | 1564 | <id>189</id> |
1565 | </test> |
||
1566 | <test> |
||
1567 | <address>a@b</address> |
||
1568 | <valid>false</valid> |
||
1569 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1570 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1571 | </sourcelink> |
||
4 | daniel-mar | 1572 | <id>190</id> |
1573 | </test> |
||
1574 | <test> |
||
1575 | <address>@bar.com</address> |
||
1576 | <valid>false</valid> |
||
1577 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1578 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1579 | </sourcelink> |
||
4 | daniel-mar | 1580 | <id>191</id> |
1581 | </test> |
||
1582 | <test> |
||
1583 | <address>@@bar.com</address> |
||
1584 | <valid>false</valid> |
||
1585 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1586 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1587 | </sourcelink> |
||
4 | daniel-mar | 1588 | <id>192</id> |
1589 | </test> |
||
1590 | <test> |
||
1591 | <address>a@bar.com</address> |
||
1592 | <valid>true</valid> |
||
1593 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1594 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1595 | </sourcelink> |
||
4 | daniel-mar | 1596 | <id>193</id> |
1597 | </test> |
||
1598 | <test> |
||
1599 | <address>aaa.com</address> |
||
1600 | <valid>false</valid> |
||
1601 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1602 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1603 | </sourcelink> |
||
4 | daniel-mar | 1604 | <id>194</id> |
1605 | </test> |
||
1606 | <test> |
||
1607 | <address>aaa@.com</address> |
||
1608 | <valid>false</valid> |
||
1609 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1610 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1611 | </sourcelink> |
||
4 | daniel-mar | 1612 | <id>195</id> |
1613 | </test> |
||
1614 | <test> |
||
1615 | <address>aaa@.123</address> |
||
1616 | <valid>false</valid> |
||
1617 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1618 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1619 | </sourcelink> |
||
4 | daniel-mar | 1620 | <id>196</id> |
1621 | </test> |
||
1622 | <test> |
||
1623 | <address>aaa@[123.123.123.123]</address> |
||
1624 | <valid>true</valid> |
||
1625 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1626 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1627 | </sourcelink> |
||
4 | daniel-mar | 1628 | <id>197</id> |
1629 | </test> |
||
1630 | <test> |
||
1631 | <address>aaa@[123.123.123.123]a</address> |
||
1632 | <valid>false</valid> |
||
1633 | <comment>extra data outside ip</comment> |
||
1634 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1635 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1636 | </sourcelink> |
||
4 | daniel-mar | 1637 | <id>198</id> |
1638 | </test> |
||
1639 | <test> |
||
1640 | <address>aaa@[123.123.123.333]</address> |
||
1641 | <valid>false</valid> |
||
1642 | <comment>not a valid IP</comment> |
||
1643 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1644 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1645 | </sourcelink> |
||
4 | daniel-mar | 1646 | <id>199</id> |
1647 | </test> |
||
1648 | <test> |
||
1649 | <address>a@bar.com.</address> |
||
1650 | <valid>false</valid> |
||
1651 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1652 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1653 | </sourcelink> |
||
4 | daniel-mar | 1654 | <id>200</id> |
1655 | </test> |
||
1656 | <test> |
||
1657 | <address>a@bar</address> |
||
1658 | <valid>false</valid> |
||
1659 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1660 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1661 | </sourcelink> |
||
4 | daniel-mar | 1662 | <id>201</id> |
1663 | </test> |
||
1664 | <test> |
||
1665 | <address>a-b@bar.com</address> |
||
1666 | <valid>true</valid> |
||
1667 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1668 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1669 | </sourcelink> |
||
4 | daniel-mar | 1670 | <id>202</id> |
1671 | </test> |
||
1672 | <test> |
||
1673 | <address>+@b.c</address> |
||
1674 | <valid>true</valid> |
||
1675 | <comment>TLDs can be any length</comment> |
||
1676 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1677 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1678 | </sourcelink> |
||
4 | daniel-mar | 1679 | <id>203</id> |
1680 | </test> |
||
1681 | <test> |
||
1682 | <address>+@b.com</address> |
||
1683 | <valid>true</valid> |
||
1684 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1685 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1686 | </sourcelink> |
||
4 | daniel-mar | 1687 | <id>204</id> |
1688 | </test> |
||
1689 | <test> |
||
1690 | <address>a@-b.com</address> |
||
1691 | <valid>false</valid> |
||
1692 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1693 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1694 | </sourcelink> |
||
4 | daniel-mar | 1695 | <id>205</id> |
1696 | </test> |
||
1697 | <test> |
||
1698 | <address>a@b-.com</address> |
||
1699 | <valid>false</valid> |
||
1700 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1701 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1702 | </sourcelink> |
||
4 | daniel-mar | 1703 | <id>206</id> |
1704 | </test> |
||
1705 | <test> |
||
1706 | <address>-@..com</address> |
||
1707 | <valid>false</valid> |
||
1708 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1709 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1710 | </sourcelink> |
||
4 | daniel-mar | 1711 | <id>207</id> |
1712 | </test> |
||
1713 | <test> |
||
1714 | <address>-@a..com</address> |
||
1715 | <valid>false</valid> |
||
1716 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1717 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1718 | </sourcelink> |
||
4 | daniel-mar | 1719 | <id>208</id> |
1720 | </test> |
||
1721 | <test> |
||
1722 | <address>a@b.co-foo.uk</address> |
||
1723 | <valid>true</valid> |
||
1724 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1725 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1726 | </sourcelink> |
||
4 | daniel-mar | 1727 | <id>209</id> |
1728 | </test> |
||
1729 | <test> |
||
1730 | <address>"hello my name is"@stutter.com</address> |
||
1731 | <valid>true</valid> |
||
1732 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1733 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1734 | </sourcelink> |
||
4 | daniel-mar | 1735 | <id>210</id> |
1736 | </test> |
||
1737 | <test> |
||
1738 | <address>"Test \"Fail\" Ing"@example.com</address> |
||
1739 | <valid>true</valid> |
||
1740 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1741 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1742 | </sourcelink> |
||
4 | daniel-mar | 1743 | <id>211</id> |
1744 | </test> |
||
1745 | <test> |
||
1746 | <address>valid@special.museum</address> |
||
1747 | <valid>true</valid> |
||
1748 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1749 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1750 | </sourcelink> |
||
4 | daniel-mar | 1751 | <id>212</id> |
1752 | </test> |
||
1753 | <test> |
||
1754 | <address>invalid@special.museum-</address> |
||
1755 | <valid>false</valid> |
||
1756 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1757 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1758 | </sourcelink> |
||
4 | daniel-mar | 1759 | <id>213</id> |
1760 | </test> |
||
1761 | <test> |
||
1762 | <address>shaitan@my-domain.thisisminekthx</address> |
||
1763 | <valid>true</valid> |
||
1764 | <comment>Disagree with Paul Gregg here</comment> |
||
1765 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1766 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1767 | </sourcelink> |
||
4 | daniel-mar | 1768 | <id>214</id> |
1769 | </test> |
||
1770 | <test> |
||
1771 | <address>test@...........com</address> |
||
1772 | <valid>false</valid> |
||
1773 | <comment>......</comment> |
||
1774 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1775 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1776 | </sourcelink> |
||
4 | daniel-mar | 1777 | <id>215</id> |
1778 | </test> |
||
1779 | <test> |
||
1780 | <address>foobar@192.168.0.1</address> |
||
1781 | <valid>false</valid> |
||
1782 | <comment>ip need to be []</comment> |
||
1783 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1784 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1785 | </sourcelink> |
||
4 | daniel-mar | 1786 | <id>216</id> |
1787 | </test> |
||
1788 | <test> |
||
1789 | <address>"Joe\\Blow"@example.com</address> |
||
1790 | <valid>true</valid> |
||
1791 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1792 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1793 | </sourcelink> |
||
4 | daniel-mar | 1794 | <id>217</id> |
1795 | </test> |
||
1796 | <test> |
||
22 | daniel-mar | 1797 | <address>Invalid \ Folding \ Whitespace@example.com |
1798 | </address> |
||
4 | daniel-mar | 1799 | <valid>false</valid> |
1800 | <source>Paul Gregg</source> |
||
1801 | <comment>This isn't FWS so Dominic Sayers says it's invalid</comment> |
||
22 | daniel-mar | 1802 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1803 | </sourcelink> |
||
4 | daniel-mar | 1804 | <id>218</id> |
1805 | </test> |
||
1806 | <test> |
||
1807 | <address>HM2Kinsists@(that comments are allowed)this.is.ok</address> |
||
1808 | <valid>true</valid> |
||
1809 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1810 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1811 | </sourcelink> |
||
4 | daniel-mar | 1812 | <id>219</id> |
1813 | </test> |
||
1814 | <test> |
||
1815 | <address>user%uucp!path@somehost.edu</address> |
||
1816 | <valid>true</valid> |
||
1817 | <source>Paul Gregg</source> |
||
22 | daniel-mar | 1818 | <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php |
1819 | </sourcelink> |
||
4 | daniel-mar | 1820 | <id>220</id> |
1821 | </test> |
||
1822 | <test> |
||
1823 | <address>"first(last)"@example.com</address> |
||
1824 | <valid>true</valid> |
||
1825 | <source>Dominic Sayers</source> |
||
1826 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1827 | <id>221</id> |
||
1828 | </test> |
||
1829 | <test> |
||
22 | daniel-mar | 1830 | <address> ( x ) |
1831 | first ( x ) . ( |
||
1832 | x) last ( x ) |
||
1833 | @example.com</address> |
||
4 | daniel-mar | 1834 | <valid>true</valid> |
1835 | <source>Dominic Sayers</source> |
||
1836 | <sourcelink>http://www.dominicsayers.com/isemail</sourcelink> |
||
1837 | <id>222</id> |
||
1838 | </test> |
||
1839 | <test> |
||
1840 | <address>test. obs@syntax.com</address> |
||
1841 | <valid>true</valid> |
||
1842 | <comment>obs-fws allows multiple lines</comment> |
||
1843 | <source>George Pollard</source> |
||
22 | daniel-mar | 1844 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1845 | </sourcelink> |
||
4 | daniel-mar | 1846 | <id>223</id> |
1847 | </test> |
||
1848 | <test> |
||
1849 | <address>test. obs@syntax.com</address> |
||
1850 | <valid>true</valid> |
||
22 | daniel-mar | 1851 | <comment>obs-fws allows multiple lines (test 2: space before break) |
1852 | </comment> |
||
4 | daniel-mar | 1853 | <source>George Pollard</source> |
22 | daniel-mar | 1854 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1855 | </sourcelink> |
||
4 | daniel-mar | 1856 | <id>224</id> |
1857 | </test> |
||
1858 | <test> |
||
1859 | <address>test. obs@syntax.com</address> |
||
1860 | <valid>false</valid> |
||
1861 | <comment>obs-fws must have at least one WSP per line</comment> |
||
1862 | <source>George Pollard</source> |
||
22 | daniel-mar | 1863 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1864 | </sourcelink> |
||
4 | daniel-mar | 1865 | <id>225</id> |
1866 | </test> |
||
1867 | <test> |
||
1868 | <address>"null \\0"@char.com</address> |
||
1869 | <valid>true</valid> |
||
1870 | <comment>can have escaped null character</comment> |
||
1871 | <source>George Pollard</source> |
||
22 | daniel-mar | 1872 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1873 | </sourcelink> |
||
4 | daniel-mar | 1874 | <id>226</id> |
1875 | </test> |
||
1876 | <test> |
||
1877 | <address>"null \0"@char.com</address> |
||
1878 | <valid>false</valid> |
||
1879 | <comment>cannot have unescaped null character</comment> |
||
1880 | <source>George Pollard</source> |
||
22 | daniel-mar | 1881 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1882 | </sourcelink> |
||
4 | daniel-mar | 1883 | <id>227</id> |
1884 | </test> |
||
1885 | <test> |
||
1886 | <address>null\\0@char.com</address> |
||
1887 | <valid>false</valid> |
||
1888 | <comment>escaped null must be in quoted string</comment> |
||
1889 | <source>George Pollard</source> |
||
22 | daniel-mar | 1890 | <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses |
1891 | </sourcelink> |
||
4 | daniel-mar | 1892 | <id>228</id> |
1893 | </test> |
||
1894 | <test> |
||
1895 | <address>cdburgess+!#$%&'*-/=?+_{}|~test@gmail.com</address> |
||
1896 | <valid>true</valid> |
||
1897 | <comment>Example given in comments</comment> |
||
22 | daniel-mar | 1898 | <source>http://www.dominicsayers.com/isemail/#comment-30024957 |
1899 | </source> |
||
4 | daniel-mar | 1900 | <sourcelink>cdburgess</sourcelink> |
1901 | <id>229</id> |
||
1902 | </test> |
||
1903 | </tests> |