• "Mary Smith <mary@example.net>"
    Valid!
  • "Mary Smith <mary@x.test>, jdoe@example.org, Who? <one@y.test>"
    Valid!
  • "A Group:Ed Jones <c@a.test>,joe@where.test,John <jdoe@one.test>;"
    Valid!
  • "Undisclosed recipients:;"
    Valid!
  • "\"Mary Smith: Personal Account\" <smith@home.example>"
    Valid!
  • "John Doe <jdoe@machine.example>"
    Valid!
  • "Pete(A nice \\) chap) <pete(his account)@silly.test(his host)>"
    Valid!
  • "A Group(Some people)\r\n    :Chris Jones <c@(Chris's host.)public.example>,\r\n      joe@example.org,\r\n  John <jdoe@one.test> (my dear friend); (the end of the group)"
    Valid!
  • "(Empty list)(start)Hidden recipients  :(nobody(that I know))  ;"
    Valid!
  • "Mary Smith <@node.test:mary@example.net>, , jdoe@test  . example"
    Valid!
  • "Joe Q. Public <john.q.public@example.com>"
    Valid!
  • "John Doe <jdoe@machine(comment).  example>"
    Valid!
  • "Mary Smith\r\n  \r\n  <mary@example.net>"
    Valid!
  • "<boss@nil.test>, \"Giant; \\\"Big\\\" Box\" <sysservices@example.net>"
    Valid!
  • "!#$%&`*+/=?^`{|}~@iana.org"
    Valid!
  • "(\007;)mary@example.net"
    Valid!
  • "\"\\\n\"@x.test"
    Valid!
  • "\"\\a\"@x.test"
    Valid!
  • "\"\007\"@x.test"
    Valid!
  • "\"\\\007\"@x.test"
    Valid!
  • "pete@[255.255.255.255]"
    Valid!
  • "\"mary\"@example.net"
    Valid!
  • "\"\\\"\"@example.net"
    Valid!
  • "\"john\".\"public\"@example.com"
    Valid!
  • "\"mary smith\"@home.example"
    Valid!
  • "\"mary\".smith@home.example"
    Valid!
  • "\"mary\\\000\"@home.example"
    Valid!
  • " richard @home.example"
    Valid!
  • "richar@ home .example"
    Valid!
  • "mary . smith@y.test"
    Valid!
  • "\r\n jdoe@example.net"
    Valid!
  • "\r\n \r\n jdoe@example.net"
    Valid!
  • "(comment)smith@home.example"
    Valid!
  • "(comment(comment))smith@home.example"
    Valid!
  • "smith@(comment)home.example"
    Valid!
  • "smith@(comment)[255.255.255.255]"
    Valid!
  • "robert@xn--hxajbheg2az3al.xn--jxalpdlp"
    Valid!
  • "xn--robert@x.test"
    Valid!
  • "stephane+blog@bortzmeyer.org"
    Valid!
  • "{tropdur}@example.org"
    Valid!
  • "c&a@hotmail.com"
    Valid!
  • "directeur@arts-premiers.museum"
    Valid!
  • "\"Stephane[Bortzmeyer]\"@laposte.net"
    Valid!
  • "first.last@iana.org"
    Valid!
  • "1234567890123456789012345678901234567890123456789012345678901234@iana.org"
    Valid!
  • "\"first\\\"last\"@iana.org"
    Valid!
  • "\"first@last\"@iana.org"
    Valid!
  • "\"first\\last\"@iana.org"
    Valid!
  • "first.last@[12.34.56.78]"
    Valid!
  • "first.last@[IPv6:::12.34.56.78]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333::4444:12.34.56.78]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.56.78]"
    Valid!
  • "first.last@[IPv6:::1111:2222:3333:4444:5555:6666]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333::4444:5555:6666]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666::]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888]"
    Valid!
  • "first.last@x23456789012345678901234567890123456789012345678901234567890123.iana.org"
    Valid!
  • "first.last@3com.com"
    Valid!
  • "first.last@123.iana.org"
    Valid!
  • "first.last@[IPv6:1111:2222:3333::4444:5555:12.34.56.78]"
    Valid!
  • "first.last@[IPv6:1111:2222:3333::4444:5555:6666:7777]"
    Valid!
  • "first.last@example.123"
    Valid!
  • "first.last@com"
    Valid!
  • "\"Abc\\@def\"@iana.org"
    Valid!
  • "\"Fred\\ Bloggs\"@iana.org"
    Valid!
  • "\"Joe.\\Blow\"@iana.org"
    Valid!
  • "\"Abc@def\"@iana.org"
    Valid!
  • "\"Fred Bloggs\"@iana.org"
    Valid!
  • "user+mailbox@iana.org"
    Valid!
  • "customer/department=shipping@iana.org"
    Valid!
  • "$A12345@iana.org"
    Valid!
  • "!def!xyz%abc@iana.org"
    Valid!
  • "_somename@iana.org"
    Valid!
  • "dclo@us.ibm.com"
    Valid!
  • "peter.piper@iana.org"
    Valid!
  • "\"Doug \\\"Ace\\\" L.\"@iana.org"
    Valid!
  • "test@iana.org"
    Valid!
  • "TEST@iana.org"
    Valid!
  • "1234567890@iana.org"
    Valid!
  • "test+test@iana.org"
    Valid!
  • "test-test@iana.org"
    Valid!
  • "t*est@iana.org"
    Valid!
  • "+1~1+@iana.org"
    Valid!
  • "{_test_}@iana.org"
    Valid!
  • "\"[[ test  ]]\"@iana.org"
    Valid!
  • "test.test@iana.org"
    Valid!
  • "\"test.test\"@iana.org"
    Valid!
  • "test.\"test\"@iana.org"
    Valid!
  • "\"test@test\"@iana.org"
    Valid!
  • "test@123.123.123.x123"
    Valid!
  • "test@123.123.123.123"
    Valid!
  • "test@[123.123.123.123]"
    Valid!
  • "test@example.iana.org"
    Valid!
  • "test@example.example.iana.org"
    Valid!
  • "\"test\\test\"@iana.org"
    Valid!
  • "test@example"
    Valid!
  • "\"test\\blah\"@iana.org"
    Valid!
  • "\"test\\\"blah\"@iana.org"
    Valid!
  • "customer/department@iana.org"
    Valid!
  • "_Yosemite.Sam@iana.org"
    Valid!
  • "~@iana.org"
    Valid!
  • "\"Austin@Powers\"@iana.org"
    Valid!
  • "Ima.Fool@iana.org"
    Valid!
  • "\"Ima.Fool\"@iana.org"
    Valid!
  • "\"Ima Fool\"@iana.org"
    Valid!
  • "\"first\".\"last\"@iana.org"
    Valid!
  • "\"first\".middle.\"last\"@iana.org"
    Valid!
  • "\"first\".last@iana.org"
    Valid!
  • "first.\"last\"@iana.org"
    Valid!
  • "\"first\".\"middle\".\"last\"@iana.org"
    Valid!
  • "\"first.middle\".\"last\"@iana.org"
    Valid!
  • "\"first.middle.last\"@iana.org"
    Valid!
  • "\"first..last\"@iana.org"
    Valid!
  • "\"first\\\\\\\"last\"@iana.org"
    Valid!
  • "first.\"mid\\dle\".\"last\"@iana.org"
    Valid!
  • "\"test blah\"@iana.org"
    Valid!
  • "(foo)cal(bar)@(baz)iamcal.com(quux)"
    Valid!
  • "cal@iamcal(woo).(yay)com"
    Valid!
  • "cal(woo(yay)hoopla)@iamcal.com"
    Valid!
  • "cal(foo\\@bar)@iamcal.com"
    Valid!
  • "cal(foo\\)bar)@iamcal.com"
    Valid!
  • "first().last@iana.org"
    Valid!
  • "pete(his account)@silly.test(his host)"
    Valid!
  • "c@(Chris's host.)public.example"
    Valid!
  • "jdoe@machine(comment). example"
    Valid!
  • "1234 @ local(blah) .machine .example"
    Valid!
  • "first(abc.def).last@iana.org"
    Valid!
  • "first(a\"bc.def).last@iana.org"
    Valid!
  • "first.(\")middle.last(\")@iana.org"
    Valid!
  • "first(abc\\(def)@iana.org"
    Valid!
  • "first.last@x(1234567890123456789012345678901234567890123456789012345678901234567890).com"
    Valid!
  • "a(a(b(c)d(e(f))g)h(i)j)@iana.org"
    Valid!
  • "name.lastname@domain.com"
    Valid!
  • "a@b"
    Valid!
  • "a@bar.com"
    Valid!
  • "aaa@[123.123.123.123]"
    Valid!
  • "a@bar"
    Valid!
  • "a-b@bar.com"
    Valid!
  • "+@b.c"
    Valid!
  • "+@b.com"
    Valid!
  • "a@b.co-foo.uk"
    Valid!
  • "\"hello my name is\"@stutter.com"
    Valid!
  • "\"Test \\\"Fail\\\" Ing\"@iana.org"
    Valid!
  • "valid@about.museum"
    Valid!
  • "shaitan@my-domain.thisisminekthx"
    Valid!
  • "foobar@192.168.0.1"
    Valid!
  • "\"Joe\\Blow\"@iana.org"
    Valid!
  • "HM2Kinsists@(that comments are allowed)this.is.ok"
    Valid!
  • "user%uucp!path@berkeley.edu"
    Valid!
  • "first.last @iana.org"
    Valid!
  • "cdburgess+!#$%&'*-/=?+_{}|~test@gmail.com"
    Valid!
  • "first.last@[IPv6:a1:a2:a3:a4:b1:b2:b3::]"
    Valid!
  • "first.last@[IPv6:::]"
    Valid!
  • "first.last@[IPv6:::b4]"
    Valid!
  • "first.last@[IPv6:::b3:b4]"
    Valid!
  • "first.last@[IPv6:a1::b4]"
    Valid!
  • "first.last@[IPv6:a1::]"
    Valid!
  • "first.last@[IPv6:a1:a2::]"
    Valid!
  • "first.last@[IPv6:0123:4567:89ab:cdef::]"
    Valid!
  • "first.last@[IPv6:0123:4567:89ab:CDEF::]"
    Valid!
  • "first.last@[IPv6:::a3:a4:b1:ffff:11.22.33.44]"
    Valid!
  • "first.last@[IPv6:a1:a2:a3:a4::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:a1:a2:a3:a4:b1::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:a1::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:a1:a2::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:0123:4567:89ab:cdef::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:0123:4567:89ab:CDEF::11.22.33.44]"
    Valid!
  • "first.last@[IPv6:a1::b2:11.22.33.44]"
    Valid!
  • "first.last@[IPv6:::a2:a3:a4:b1:b2:b3:b4]"
    Valid!
  • "first.last@[IPv6:::a2:a3:a4:b1:ffff:11.22.33.44]"
    Valid!
  • "test@test.com"
    Valid!
  • "test@xn--example.com"
    Valid!
  • "test@example.com"
    Valid!
  • ""
    Invalid!
  • "mary"
    Invalid!
  • "@"
    Invalid!
  • "mary@"
    Invalid!
  • "@io"
    Invalid!
  • "@example.net"
    Invalid!
  • ".mary@example.net"
    Invalid!
  • "jdoe.@example.net"
    Invalid!
  • "pete..silly.test"
    Invalid!
  • "sm_i-th.com"
    Invalid!
  • "mary\\@jdoe@one.test"
    Invalid!
  • "jdoe@.one.test"
    Invalid!
  • "jdon@one.test."
    Invalid!
  • "boss@nil..test"
    Invalid!
  • "\"\"\"@example.net"
    Invalid!
  • "\"\\\"@example.net"
    Invalid!
  • "jdoe\"@machine.example"
    Invalid!
  • "\"jdoe@machine.example"
    Invalid!
  • "\"john\"public@example.com"
    Invalid!
  • "john\"public\"@example.com"
    Invalid!
  • "\"john\"\"public\"@example.com"
    Invalid!
  • "\"mary\000\"@home.example"
    Invalid!
  • "pete@a[255.255.255.255]"
    Invalid!
  • "((comment)smith@home.example"
    Invalid!
  • "smith(coment)doe@home.example"
    Invalid!
  • "robert@henry.com\r"
    Invalid!
  • "(smith@home.example"
    Invalid!
  • "robert@[1.2.3.4"
    Invalid!
  • "\"john\\\"@example.com"
    Invalid!
  • "(comment\\)smith@home.example"
    Invalid!
  • "smith@home.example(comment\\)"
    Invalid!
  • "smith@home.example(comment\\"
    Invalid!
  • "robert@[RFC5322-[domain-literal\\]"
    Invalid!
  • "robert@[RFC5322-[domain-literal]"
    Invalid!
  • "robert@[RFC5322-[domain-literal\\"
    Invalid!
  • "marx@capitalism.ru\r"
    Invalid!
  • "\rmarx@capitalism.ru"
    Invalid!
  • "\"\rmarx\"@capitalism.ru"
    Invalid!
  • "(\r)marx@capitalism.ru"
    Invalid!
  • "marx@capitalism.ru(\r)"
    Invalid!
  • "smith@communism.uk\n"
    Invalid!
  • "\nsmith@communism.uk"
    Invalid!
  • "\"\nsmith\"@communism.uk"
    Invalid!
  • "(\n)smith@communism.uk"
    Invalid!
  • "smith@communism.uk(\n)"
    Invalid!
  • "first.last@sub.do,com"
    Invalid!
  • "first\\@last@iana.org"
    Invalid!
  • "first.last"
    Invalid!
  • ".first.last@iana.org"
    Invalid!
  • "first.last.@iana.org"
    Invalid!
  • "first..last@iana.org"
    Invalid!
  • "\"first\"last\"@iana.org"
    Invalid!
  • "\"\"\"@iana.org"
    Invalid!
  • "\"\\\"@iana.org"
    Invalid!
  • "\"\"@iana.org"
    Invalid!
  • "first\\@last@iana.org"
    Invalid!
  • "first.last@"
    Invalid!
  • "first.last@[.12.34.56.78]"
    Invalid!
  • "first.last@[12.34.56.789]"
    Invalid!
  • "first.last@[::12.34.56.78]"
    Invalid!
  • "first.last@[IPv5:::12.34.56.78]"
    Invalid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:12.34.56.78]"
    Invalid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:12.34.56.78]"
    Invalid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777]"
    Invalid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999]"
    Invalid!
  • "first.last@[IPv6:1111:2222::3333::4444:5555:6666]"
    Invalid!
  • "first.last@[IPv6:1111:2222:333x::4444:5555]"
    Invalid!
  • "first.last@[IPv6:1111:2222:33333::4444:5555]"
    Invalid!
  • "abc\\@def@iana.org"
    Invalid!
  • "abc\\@iana.org"
    Invalid!
  • "@iana.org"
    Invalid!
  • "doug@"
    Invalid!
  • "\"qu@iana.org"
    Invalid!
  • "ote\"@iana.org"
    Invalid!
  • ".dot@iana.org"
    Invalid!
  • "dot.@iana.org"
    Invalid!
  • "two..dot@iana.org"
    Invalid!
  • "\"Doug \"Ace\" L.\"@iana.org"
    Invalid!
  • "Doug\\ \\\"Ace\\\"\\ L\\.@iana.org"
    Invalid!
  • "hello world@iana.org"
    Invalid!
  • "gatsby@f.sc.ot.t.f.i.tzg.era.l.d."
    Invalid!
  • "test.iana.org"
    Invalid!
  • "test.@iana.org"
    Invalid!
  • "test..test@iana.org"
    Invalid!
  • ".test@iana.org"
    Invalid!
  • "test@test@iana.org"
    Invalid!
  • "test@@iana.org"
    Invalid!
  • "-- test --@iana.org"
    Invalid!
  • "[test]@iana.org"
    Invalid!
  • "\"test\"test\"@iana.org"
    Invalid!
  • "()[]\\;:,><@iana.org"
    Invalid!
  • "test@."
    Invalid!
  • "test@example."
    Invalid!
  • "test@.org"
    Invalid!
  • "test@[123.123.123.123"
    Invalid!
  • "test@123.123.123.123]"
    Invalid!
  • "NotAnEmail"
    Invalid!
  • "NotAnEmail"
    Invalid!
  • "\"test\"blah\"@iana.org"
    Invalid!
  • ".wooly@iana.org"
    Invalid!
  • "wo..oly@iana.org"
    Invalid!
  • "pootietang.@iana.org"
    Invalid!
  • ".@iana.org"
    Invalid!
  • "Ima Fool@iana.org"
    Invalid!
  • "phil.h\\@\\@ck@haacked.com"
    Invalid!
  • "first\\last@iana.org"
    Invalid!
  • "Abc\\@def@iana.org"
    Invalid!
  • "Fred\\ Bloggs@iana.org"
    Invalid!
  • "Joe.\\Blow@iana.org"
    Invalid!
  • "first.last@[IPv6:1111:2222:3333:4444:5555:6666:12.34.567.89]"
    Invalid!
  • "{^c\\@**Dog^}@cartoon.com"
    Invalid!
  • "cal(foo(bar)@iamcal.com"
    Invalid!
  • "cal(foo\\)@iamcal.com"
    Invalid!
  • "cal(foo)bar)@iamcal.com"
    Invalid!
  • "first(middle)last@iana.org"
    Invalid!
  • "a(a(b(c)d(e(f))g)(h(i)j)@iana.org"
    Invalid!
  • ".@"
    Invalid!
  • "@bar.com"
    Invalid!
  • "@@bar.com"
    Invalid!
  • "aaa.com"
    Invalid!
  • "aaa@.com"
    Invalid!
  • "aaa@.com"
    Invalid!
  • "aaa@.123"
    Invalid!
  • "aaa@[123.123.123.123]a"
    Invalid!
  • "aaa@[123.123.123.333]"
    Invalid!
  • "a@bar.com."
    Invalid!
  • "-@..com"
    Invalid!
  • "-@a..com"
    Invalid!
  • "test@...........com"
    Invalid!
  • "\"\000 \"@char.com"
    Invalid!
  • "\000@char.com"
    Invalid!
  • "first.last@[IPv6::]"
    Invalid!
  • "first.last@[IPv6::::]"
    Invalid!
  • "first.last@[IPv6::b4]"
    Invalid!
  • "first.last@[IPv6::::b4]"
    Invalid!
  • "first.last@[IPv6::b3:b4]"
    Invalid!
  • "first.last@[IPv6::::b3:b4]"
    Invalid!
  • "first.last@[IPv6:a1:::b4]"
    Invalid!
  • "first.last@[IPv6:a1:]"
    Invalid!
  • "first.last@[IPv6:a1:::]"
    Invalid!
  • "first.last@[IPv6:a1:a2:]"
    Invalid!
  • "first.last@[IPv6:a1:a2:::]"
    Invalid!
  • "first.last@[IPv6::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6::::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1:11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1:::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1:a2:::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:0123:4567:89ab:cdef::11.22.33.xx]"
    Invalid!
  • "first.last@[IPv6:0123:4567:89ab:CDEFF::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1::a4:b1::b4:11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1::11.22.33]"
    Invalid!
  • "first.last@[IPv6:a1::11.22.33.44.55]"
    Invalid!
  • "first.last@[IPv6:a1::b211.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1::11.22.33]"
    Invalid!
  • "first.last@[IPv6:a1::11.22.33.44.55]"
    Invalid!
  • "first.last@[IPv6:a1::b211.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1::b2::11.22.33.44]"
    Invalid!
  • "first.last@[IPv6:a1::b3:]"
    Invalid!
  • "first.last@[IPv6::a2::b4]"
    Invalid!
  • "first.last@[IPv6:a1:a2:a3:a4:b1:b2:b3:]"
    Invalid!
  • "first.last@[IPv6::a2:a3:a4:b1:b2:b3:b4]"
    Invalid!
  • "first.last@[IPv6:a1:a2:a3:a4::b1:b2:b3:b4]"
    Invalid!
  • "=?us-ascii?Q?Chri's_Smith?= =?us-ascii?Q?Henry?= <.@gmail.com,@hotmail.fr:henry.chris+porno@(Chris's host.)public.example> (je suis un connard en puissance)"
    Invalid!