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