1# POP3 - Post Office Protocol version 3 (popular e-mail protocol) - RFC 1939 2# Pattern attributes: great veryfast fast 3# Protocol groups: mail ietf_internet_standard 4# Wiki: http://www.protocolinfo.org/wiki/POP 5# 6# This pattern has been tested somewhat. 7 8# this is a difficult protocol to match because of the relative lack of 9# distinguishing information. Read on. 10pop3 11 12# this the most conservative pattern. It should definitely work. 13#^(\+ok|-err) 14 15# this pattern assumes that the server says _something_ after +ok or -err 16# I think this is probably the way to go. 17^(\+ok |-err ) 18 19# more that 90% of servers seem to say "pop" after "+ok", but not all. 20#^(\+ok .*pop) 21 22# Here's another tack. I think this is my second favorite. 23#^(\+ok [\x09-\x0d -~]*(ready|hello|pop|starting)|-err [\x09-\x0d -~]*(invalid|unknown|unimplemented|unrecognized|command)) 24 25# this matches the server saying "you have N messages that are M bytes", 26# which the client probably asks for early in the session (not tested) 27#\+ok [0-9]+ [0-9]+ 28 29# some sample servers: 30# RFC example: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> 31# mail.dreamhost.com: +OK Hello there. 32# pop.carleton.edu: +OK POP3D(*) Server PMDFV6.2.2 at Fri, 12 Sep 2003 19:28:10 -0500 (CDT) (APOP disabled) 33# mail.earthlink.net: +OK NGPopper vEL_4_38 at earthlink.net ready <25509.1063412951@falcon> 34# *.email.umn.edu: +OK Cubic Circle's v1.22 1998/04/11 POP3 ready <7d1e0000da67623f@aquamarine.tc.umn.edu> 35# mail.yale.edu: +OK POP3 pantheon-po01 v2002.81 server ready 36# mail.gustavus.edu: +OK POP3 solen v2001.78 server ready 37# mail.reed.edu: +OK POP3 letra.reed.edu v2002.81 server ready 38# mail.bowdoin.edu: +OK mail.bowdoin.edu POP3 service (iPlanet Messaging Server 5.2 HotFix 1.15 (built Apr 28 2003)) 39# pop.colby.edu: +OK Qpopper (version 4.0.5) at basalt starting. 40# mail.mac.com: +OK Netscape Messaging Multiplexor ready 41 42# various error strings: 43#-ERR Invalid command. 44#-ERR invalid command 45#-ERR unimplemented 46#-ERR Invalid command, try one of: USER name, PASS string, QUIT 47#-ERR Unknown AUTHORIZATION state command 48#-ERR Unrecognized command 49#-ERR Unknown command: "sadf'". 50