Login | ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/javautils/ViaThinkSoft Java Utils/test/eMailTests/SayersTests.xml
Revision: 22
Committed: Wed Jun 23 20:46:09 2010 UTC (9 years, 11 months ago) by daniel-marschall
Content type: application/xml
File size: 61371 byte(s)
Log Message:
XMLs mit XSD damit keine Warnungen mehr kommen

File Contents

# Content
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">
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>
16 <address>1234567890123456789012345678901234567890123456789012345678901234@example.com
17 </address>
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>
26 <comment>Mistyped comma instead of dot (replaces old #3 which was the
27 same as #57)</comment>
28 <source>Rob &lt;bob@bob.com&gt;</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>
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>
63 <valid>true</valid>
64 <comment>Total length reduced to 254 characters so it's still valid
65 </comment>
66 <source>Dominic Sayers</source>
67 <sourcelink>http://www.dominicsayers.com/isemail</sourcelink>
68 <id>8</id>
69 </test>
70 <test>
71 <address>1234567890123456789012345678901234567890123456789012345678@12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.123456789012345678901234567890123456789012345678901234567890123.example.com
72 </address>
73 <valid>true</valid>
74 <comment>Total length reduced to 254 characters so it's still valid
75 </comment>
76 <source>RFC 3696 erratum 1690</source>
77 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=1690
78 </sourcelink>
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>
85 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=1690
86 </sourcelink>
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>
104 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.56.78]
105 </address>
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>
133 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888]
134 </address>
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>
141 <address>first.last@x23456789012345678901234567890123456789012345678901234567890123.example.com
142 </address>
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>
163 <address>123456789012345678901234567890123456789012345678901234567890@12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.12.example.com
164 </address>
165 <valid>false</valid>
166 <comment>Entire address is longer than 254 characters</comment>
167 <source>RFC 3696 erratum 1690</source>
168 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=1690
169 </sourcelink>
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>
181 <address>12345678901234567890123456789012345678901234567890123456789012345@example.com
182 </address>
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>
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>
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>
311 <address>first.last@[IPv6:1111:2222:3333::4444:5555:12.34.56.78]
312 </address>
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>
320 <address>first.last@[IPv6:1111:2222:3333:4444:5555:12.34.56.78]
321 </address>
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>
329 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:12.34.56.78]
330 </address>
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>
338 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777]
339 </address>
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>
347 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999]
348 </address>
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>
364 <address>first.last@[IPv6:1111:2222:3333::4444:5555:6666:7777]
365 </address>
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>
421 <address>first.last@x234567890123456789012345678901234567890123456789012345678901234.example.com
422 </address>
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>
440 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
441 </sourcelink>
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>
448 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
449 </sourcelink>
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>
456 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
457 </sourcelink>
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>
512 <comment>This example from RFC 3696 was corrected in an erratum
513 </comment>
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>
521 <comment>This example from RFC 3696 was corrected in an erratum
522 </comment>
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>
665 <sourcelink>http://code.google.com/p/php-email-address-validation/
666 </sourcelink>
667 <id>83</id>
668 </test>
669 <test>
670 <valid>true</valid>
671 <address>TEST@example.com</address>
672 <source>Dave Child</source>
673 <sourcelink>http://code.google.com/p/php-email-address-validation/
674 </sourcelink>
675 <id>84</id>
676 </test>
677 <test>
678 <valid>true</valid>
679 <address>1234567890@example.com</address>
680 <source>Dave Child</source>
681 <sourcelink>http://code.google.com/p/php-email-address-validation/
682 </sourcelink>
683 <id>85</id>
684 </test>
685 <test>
686 <valid>true</valid>
687 <address>test+test@example.com</address>
688 <source>Dave Child</source>
689 <sourcelink>http://code.google.com/p/php-email-address-validation/
690 </sourcelink>
691 <id>86</id>
692 </test>
693 <test>
694 <valid>true</valid>
695 <address>test-test@example.com</address>
696 <source>Dave Child</source>
697 <sourcelink>http://code.google.com/p/php-email-address-validation/
698 </sourcelink>
699 <id>87</id>
700 </test>
701 <test>
702 <valid>true</valid>
703 <address>t*est@example.com</address>
704 <source>Dave Child</source>
705 <sourcelink>http://code.google.com/p/php-email-address-validation/
706 </sourcelink>
707 <id>88</id>
708 </test>
709 <test>
710 <valid>true</valid>
711 <address>+1~1+@example.com</address>
712 <source>Dave Child</source>
713 <sourcelink>http://code.google.com/p/php-email-address-validation/
714 </sourcelink>
715 <id>89</id>
716 </test>
717 <test>
718 <valid>true</valid>
719 <address>{_test_}@example.com</address>
720 <source>Dave Child</source>
721 <sourcelink>http://code.google.com/p/php-email-address-validation/
722 </sourcelink>
723 <id>90</id>
724 </test>
725 <test>
726 <valid>true</valid>
727 <address>"[[ test ]]"@example.com</address>
728 <source>Dave Child</source>
729 <sourcelink>http://code.google.com/p/php-email-address-validation/
730 </sourcelink>
731 <id>91</id>
732 </test>
733 <test>
734 <valid>true</valid>
735 <address>test.test@example.com</address>
736 <source>Dave Child</source>
737 <sourcelink>http://code.google.com/p/php-email-address-validation/
738 </sourcelink>
739 <id>92</id>
740 </test>
741 <test>
742 <valid>true</valid>
743 <address>"test.test"@example.com</address>
744 <source>Dave Child</source>
745 <sourcelink>http://code.google.com/p/php-email-address-validation/
746 </sourcelink>
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>
754 <sourcelink>http://code.google.com/p/php-email-address-validation/
755 </sourcelink>
756 <id>94</id>
757 </test>
758 <test>
759 <valid>true</valid>
760 <address>"test@test"@example.com</address>
761 <source>Dave Child</source>
762 <sourcelink>http://code.google.com/p/php-email-address-validation/
763 </sourcelink>
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>
770 <sourcelink>http://code.google.com/p/php-email-address-validation/
771 </sourcelink>
772 <id>96</id>
773 </test>
774 <test>
775 <valid>false</valid>
776 <address>test@123.123.123.123</address>
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>
779 <source>Dave Child</source>
780 <sourcelink>http://code.google.com/p/php-email-address-validation/
781 </sourcelink>
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>
788 <sourcelink>http://code.google.com/p/php-email-address-validation/
789 </sourcelink>
790 <id>98</id>
791 </test>
792 <test>
793 <valid>true</valid>
794 <address>test@example.example.com</address>
795 <source>Dave Child</source>
796 <sourcelink>http://code.google.com/p/php-email-address-validation/
797 </sourcelink>
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>
804 <sourcelink>http://code.google.com/p/php-email-address-validation/
805 </sourcelink>
806 <id>100</id>
807 </test>
808 <test>
809 <valid>false</valid>
810 <address>test.example.com</address>
811 <source>Dave Child</source>
812 <sourcelink>http://code.google.com/p/php-email-address-validation/
813 </sourcelink>
814 <id>101</id>
815 </test>
816 <test>
817 <valid>false</valid>
818 <address>test.@example.com</address>
819 <source>Dave Child</source>
820 <sourcelink>http://code.google.com/p/php-email-address-validation/
821 </sourcelink>
822 <id>102</id>
823 </test>
824 <test>
825 <valid>false</valid>
826 <address>test..test@example.com</address>
827 <source>Dave Child</source>
828 <sourcelink>http://code.google.com/p/php-email-address-validation/
829 </sourcelink>
830 <id>103</id>
831 </test>
832 <test>
833 <valid>false</valid>
834 <address>.test@example.com</address>
835 <source>Dave Child</source>
836 <sourcelink>http://code.google.com/p/php-email-address-validation/
837 </sourcelink>
838 <id>104</id>
839 </test>
840 <test>
841 <valid>false</valid>
842 <address>test@test@example.com</address>
843 <source>Dave Child</source>
844 <sourcelink>http://code.google.com/p/php-email-address-validation/
845 </sourcelink>
846 <id>105</id>
847 </test>
848 <test>
849 <valid>false</valid>
850 <address>test@@example.com</address>
851 <source>Dave Child</source>
852 <sourcelink>http://code.google.com/p/php-email-address-validation/
853 </sourcelink>
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>
861 <sourcelink>http://code.google.com/p/php-email-address-validation/
862 </sourcelink>
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>
870 <sourcelink>http://code.google.com/p/php-email-address-validation/
871 </sourcelink>
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>
879 <sourcelink>http://code.google.com/p/php-email-address-validation/
880 </sourcelink>
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>
888 <sourcelink>http://code.google.com/p/php-email-address-validation/
889 </sourcelink>
890 <id>110</id>
891 </test>
892 <test>
893 <valid>false</valid>
894 <address>()[]\;:,&gt;&lt;@example.com</address>
895 <comment>Disallowed Characters</comment>
896 <source>Dave Child</source>
897 <sourcelink>http://code.google.com/p/php-email-address-validation/
898 </sourcelink>
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>
906 <sourcelink>http://code.google.com/p/php-email-address-validation/
907 </sourcelink>
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>
915 <sourcelink>http://code.google.com/p/php-email-address-validation/
916 </sourcelink>
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>
924 <sourcelink>http://code.google.com/p/php-email-address-validation/
925 </sourcelink>
926 <id>114</id>
927 </test>
928 <test>
929 <valid>false</valid>
930 <address>test@123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com
931 </address>
932 <comment>255 characters is maximum length for domain. This is 256.
933 </comment>
934 <source>Dave Child</source>
935 <sourcelink>http://code.google.com/p/php-email-address-validation/
936 </sourcelink>
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>
944 <sourcelink>http://code.google.com/p/php-email-address-validation/
945 </sourcelink>
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>
953 <sourcelink>http://code.google.com/p/php-email-address-validation/
954 </sourcelink>
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>
962 <sourcelink>http://code.google.com/p/php-email-address-validation/
963 </sourcelink>
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>
971 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
972 </sourcelink>
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>
980 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
981 </sourcelink>
982 <id>120</id>
983 </test>
984 <test>
985 <address>"test\\blah"@example.com</address>
986 <valid>true</valid>
987 <source>Phil Haack</source>
988 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
989 </sourcelink>
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>
997 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
998 </sourcelink>
999 <id>122</id>
1000 </test>
1001 <test>
1002 <address>"test\&#13;blah"@example.com</address>
1003 <valid>true</valid>
1004 <comment>Quoted string specifically excludes carriage returns unless
1005 escaped</comment>
1006 <source>Phil Haack</source>
1007 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1008 </sourcelink>
1009 <id>123</id>
1010 </test>
1011 <test>
1012 <address>"test&#13;blah"@example.com</address>
1013 <valid>false</valid>
1014 <comment>Quoted string specifically excludes carriage returns
1015 </comment>
1016 <source>Phil Haack</source>
1017 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1018 </sourcelink>
1019 <id>124</id>
1020 </test>
1021 <test>
1022 <address>"test\"blah"@example.com</address>
1023 <valid>true</valid>
1024 <source>Phil Haack</source>
1025 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1026 </sourcelink>
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>
1034 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1035 </sourcelink>
1036 <id>126</id>
1037 </test>
1038 <test>
1039 <address>customer/department@example.com</address>
1040 <valid>true</valid>
1041 <source>Phil Haack</source>
1042 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1043 </sourcelink>
1044 <id>127</id>
1045 </test>
1046 <test>
1047 <address>_Yosemite.Sam@example.com</address>
1048 <valid>true</valid>
1049 <source>Phil Haack</source>
1050 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1051 </sourcelink>
1052 <id>128</id>
1053 </test>
1054 <test>
1055 <address>~@example.com</address>
1056 <valid>true</valid>
1057 <source>Phil Haack</source>
1058 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1059 </sourcelink>
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>
1067 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1068 </sourcelink>
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>
1076 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1077 </sourcelink>
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>
1085 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1086 </sourcelink>
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>
1094 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1095 </sourcelink>
1096 <id>133</id>
1097 </test>
1098 <test>
1099 <address>"Austin@Powers"@example.com</address>
1100 <valid>true</valid>
1101 <source>Phil Haack</source>
1102 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1103 </sourcelink>
1104 <id>134</id>
1105 </test>
1106 <test>
1107 <address>Ima.Fool@example.com</address>
1108 <valid>true</valid>
1109 <source>Phil Haack</source>
1110 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1111 </sourcelink>
1112 <id>135</id>
1113 </test>
1114 <test>
1115 <address>"Ima.Fool"@example.com</address>
1116 <valid>true</valid>
1117 <source>Phil Haack</source>
1118 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1119 </sourcelink>
1120 <id>136</id>
1121 </test>
1122 <test>
1123 <address>"Ima Fool"@example.com</address>
1124 <valid>true</valid>
1125 <source>Phil Haack</source>
1126 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1127 </sourcelink>
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>
1135 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1136 </sourcelink>
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>
1144 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1145 </sourcelink>
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>
1221 <comment>RFC 5321 specifies the syntax for address-literal and does
1222 not allow escaping</comment>
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>
1237 <comment>Backslash can escape anything but must escape something
1238 </comment>
1239 <source>Dominic Sayers</source>
1240 <sourcelink>http://www.dominicsayers.com/isemail</sourcelink>
1241 <id>151</id>
1242 </test>
1243 <test>
1244 <address>Test.&#13;&#10; Folding.&#13;&#10; Whitespace@example.com
1245 </address>
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>
1270 <comment>Was incorrectly given as a valid address in the original RFC
1271 3696</comment>
1272 <source>RFC 3696 erratum 246</source>
1273 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
1274 </sourcelink>
1275 <id>155</id>
1276 </test>
1277 <test>
1278 <address>Fred\ Bloggs@example.com</address>
1279 <valid>false</valid>
1280 <comment>Was incorrectly given as a valid address in the original RFC
1281 3696</comment>
1282 <source>RFC 3696 erratum 246</source>
1283 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
1284 </sourcelink>
1285 <id>156</id>
1286 </test>
1287 <test>
1288 <address>Joe.\\Blow@example.com</address>
1289 <valid>false</valid>
1290 <comment>Was incorrectly given as a valid address in the original RFC
1291 3696</comment>
1292 <source>RFC 3696 erratum 246</source>
1293 <sourcelink>http://www.rfc-editor.org/errata_search.php?rfc=3696&amp;eid=246
1294 </sourcelink>
1295 <id>157</id>
1296 </test>
1297 <test>
1298 <address>first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.567.89]
1299 </address>
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\&#13;&#10; blah"@example.com</address>
1308 <valid>false</valid>
1309 <comment>Folding white space can't appear within a quoted pair
1310 </comment>
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&#13;&#10; blah"@example.com</address>
1317 <valid>true</valid>
1318 <comment>This is a valid quoted string with folding white space
1319 </comment>
1320 <source>Phil Haack</source>
1321 <sourcelink>http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
1322 </sourcelink>
1323 <id>160</id>
1324 </test>
1325 <test>
1326 <address>{^c\@**Dog^}@cartoon.com</address>
1327 <valid>false</valid>
1328 <comment>This is a throwaway example from Doug Lovell's article.
1329 Actually it's not a valid address.</comment>
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>
1377 <comment>A valid address containing comments and an escaped
1378 parenthesis</comment>
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>
1416 <address>first.(&#13;&#10; middle&#13;&#10; )last@example.com
1417 </address>
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>
1425 <address>first(12345678901234567890123456789012345678901234567890)last@(1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)example.com
1426 </address>
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>
1434 <address>first(Welcome to&#13;&#10; the ("wonderful" (!))
1435 world&#13;&#10; of email)@example.com</address>
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>
1459 <address>jdoe@machine(comment). example</address>
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>
1467 <address>1234 @ local(blah) .machine .example</address>
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>
1477 <comment>Can't have a comment or white space except at an element
1478 boundary</comment>
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>
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>
1510 <valid>false</valid>
1511 <comment>Can't have comments or white space except at an element
1512 boundary</comment>
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>
1526 <address>first.last@x(1234567890123456789012345678901234567890123456789012345678901234567890).com
1527 </address>
1528 <valid>true</valid>
1529 <comment>Label is longer than 63 octets, but not with comment removed
1530 </comment>
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>
1554 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1555 </sourcelink>
1556 <id>188</id>
1557 </test>
1558 <test>
1559 <address>.@</address>
1560 <valid>false</valid>
1561 <source>Paul Gregg</source>
1562 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1563 </sourcelink>
1564 <id>189</id>
1565 </test>
1566 <test>
1567 <address>a@b</address>
1568 <valid>false</valid>
1569 <source>Paul Gregg</source>
1570 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1571 </sourcelink>
1572 <id>190</id>
1573 </test>
1574 <test>
1575 <address>@bar.com</address>
1576 <valid>false</valid>
1577 <source>Paul Gregg</source>
1578 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1579 </sourcelink>
1580 <id>191</id>
1581 </test>
1582 <test>
1583 <address>@@bar.com</address>
1584 <valid>false</valid>
1585 <source>Paul Gregg</source>
1586 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1587 </sourcelink>
1588 <id>192</id>
1589 </test>
1590 <test>
1591 <address>a@bar.com</address>
1592 <valid>true</valid>
1593 <source>Paul Gregg</source>
1594 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1595 </sourcelink>
1596 <id>193</id>
1597 </test>
1598 <test>
1599 <address>aaa.com</address>
1600 <valid>false</valid>
1601 <source>Paul Gregg</source>
1602 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1603 </sourcelink>
1604 <id>194</id>
1605 </test>
1606 <test>
1607 <address>aaa@.com</address>
1608 <valid>false</valid>
1609 <source>Paul Gregg</source>
1610 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1611 </sourcelink>
1612 <id>195</id>
1613 </test>
1614 <test>
1615 <address>aaa@.123</address>
1616 <valid>false</valid>
1617 <source>Paul Gregg</source>
1618 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1619 </sourcelink>
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>
1626 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1627 </sourcelink>
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>
1635 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1636 </sourcelink>
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>
1644 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1645 </sourcelink>
1646 <id>199</id>
1647 </test>
1648 <test>
1649 <address>a@bar.com.</address>
1650 <valid>false</valid>
1651 <source>Paul Gregg</source>
1652 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1653 </sourcelink>
1654 <id>200</id>
1655 </test>
1656 <test>
1657 <address>a@bar</address>
1658 <valid>false</valid>
1659 <source>Paul Gregg</source>
1660 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1661 </sourcelink>
1662 <id>201</id>
1663 </test>
1664 <test>
1665 <address>a-b@bar.com</address>
1666 <valid>true</valid>
1667 <source>Paul Gregg</source>
1668 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1669 </sourcelink>
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>
1677 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1678 </sourcelink>
1679 <id>203</id>
1680 </test>
1681 <test>
1682 <address>+@b.com</address>
1683 <valid>true</valid>
1684 <source>Paul Gregg</source>
1685 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1686 </sourcelink>
1687 <id>204</id>
1688 </test>
1689 <test>
1690 <address>a@-b.com</address>
1691 <valid>false</valid>
1692 <source>Paul Gregg</source>
1693 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1694 </sourcelink>
1695 <id>205</id>
1696 </test>
1697 <test>
1698 <address>a@b-.com</address>
1699 <valid>false</valid>
1700 <source>Paul Gregg</source>
1701 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1702 </sourcelink>
1703 <id>206</id>
1704 </test>
1705 <test>
1706 <address>-@..com</address>
1707 <valid>false</valid>
1708 <source>Paul Gregg</source>
1709 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1710 </sourcelink>
1711 <id>207</id>
1712 </test>
1713 <test>
1714 <address>-@a..com</address>
1715 <valid>false</valid>
1716 <source>Paul Gregg</source>
1717 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1718 </sourcelink>
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>
1725 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1726 </sourcelink>
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>
1733 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1734 </sourcelink>
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>
1741 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1742 </sourcelink>
1743 <id>211</id>
1744 </test>
1745 <test>
1746 <address>valid@special.museum</address>
1747 <valid>true</valid>
1748 <source>Paul Gregg</source>
1749 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1750 </sourcelink>
1751 <id>212</id>
1752 </test>
1753 <test>
1754 <address>invalid@special.museum-</address>
1755 <valid>false</valid>
1756 <source>Paul Gregg</source>
1757 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1758 </sourcelink>
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>
1766 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1767 </sourcelink>
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>
1775 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1776 </sourcelink>
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>
1784 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1785 </sourcelink>
1786 <id>216</id>
1787 </test>
1788 <test>
1789 <address>"Joe\\Blow"@example.com</address>
1790 <valid>true</valid>
1791 <source>Paul Gregg</source>
1792 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1793 </sourcelink>
1794 <id>217</id>
1795 </test>
1796 <test>
1797 <address>Invalid \&#10; Folding \&#10; Whitespace@example.com
1798 </address>
1799 <valid>false</valid>
1800 <source>Paul Gregg</source>
1801 <comment>This isn't FWS so Dominic Sayers says it's invalid</comment>
1802 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1803 </sourcelink>
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>
1810 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1811 </sourcelink>
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>
1818 <sourcelink>http://pgregg.com/projects/php/code/showvalidemail.php
1819 </sourcelink>
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>
1830 <address> &#13;&#10; (&#13;&#10; x &#13;&#10; ) &#13;&#10;
1831 first&#13;&#10; ( &#13;&#10; x&#13;&#10; ) &#13;&#10; .&#13;&#10; (
1832 &#13;&#10; x) &#13;&#10; last &#13;&#10; ( x &#13;&#10; ) &#13;&#10;
1833 @example.com</address>
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. &#13;&#10; &#13;&#10; obs@syntax.com</address>
1841 <valid>true</valid>
1842 <comment>obs-fws allows multiple lines</comment>
1843 <source>George Pollard</source>
1844 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1845 </sourcelink>
1846 <id>223</id>
1847 </test>
1848 <test>
1849 <address>test. &#13;&#10; &#13;&#10; obs@syntax.com</address>
1850 <valid>true</valid>
1851 <comment>obs-fws allows multiple lines (test 2: space before break)
1852 </comment>
1853 <source>George Pollard</source>
1854 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1855 </sourcelink>
1856 <id>224</id>
1857 </test>
1858 <test>
1859 <address>test.&#13;&#10;&#13;&#10; 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>
1863 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1864 </sourcelink>
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>
1872 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1873 </sourcelink>
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>
1881 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1882 </sourcelink>
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>
1890 <sourcelink>http://porg.es/blog/properly-validating-e-mail-addresses
1891 </sourcelink>
1892 <id>228</id>
1893 </test>
1894 <test>
1895 <address>cdburgess+!#$%&amp;'*-/=?+_{}|~test@gmail.com</address>
1896 <valid>true</valid>
1897 <comment>Example given in comments</comment>
1898 <source>http://www.dominicsayers.com/isemail/#comment-30024957
1899 </source>
1900 <sourcelink>cdburgess</sourcelink>
1901 <id>229</id>
1902 </test>
1903 </tests>

Properties

Name Value
svn:mime-type text/plain