Subversion Repositories javautils

Rev

Rev 9 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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