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

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

Properties

Name Value
svn:mime-type text/plain