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: 9
Committed: Mon Jun 14 12:58:26 2010 UTC (9 years, 11 months ago) by daniel-marschall
Content type: application/xml
File size: 60640 byte(s)
Log Message:
Mailutils updated

File Contents

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

Properties

Name Value
svn:mime-type text/plain