2010년 12월 13일 월요일

정규식 java

아래는 정규 표현식 일부를 발췌한 내용입니다.(Java API 참조)

 

더 궁금하신것이 있으면 쪽지 부탁합니다.

 

즐퍼~~~

 

 

정규 표현 구문의 요약

구문 매치 대상
 
캐릭터
x 캐릭터 x
\\ backslash 캐릭터
\0n 8 진치 0n 를 가지는 캐릭터 (0 <= n <= 7)
\0nn 8 진치 0nn 를 가지는 캐릭터 (0 <= n <= 7)
\0mnn 8 진치 0mnn 를 가지는 캐릭터 (0 <= m <= 3, 0 <= n <= 7)
\xhh 16 진치 0xhh 를 가지는 캐릭터
\uhhhh 16 진치 0xhhhh 를 가지는 캐릭터
\t 탭 캐릭터 ('\u0009')
\n 개행 캐릭터 ('\u000A')
\r 왕복대 리턴 캐릭터 ('\u000D')
\f 용지 보내 캐릭터 ('\u000C')
\a 경고 (벨) 캐릭터 ('\u0007')
\e 이스케이프 캐릭터 ('\u001B')
\cx x 에 대응하는 제어 캐릭터
 
캐릭터 클래스
[abc] a,b, 또는 c (단순 클래스)
[^abc] a,b,c 이외의 캐릭터 (부정)
[a-zA-Z] a ~ z 또는 A ~ Z (범위)
[a-d[m-p]] a ~ d, 또는 m ~ p: [a-dm-p] (결합)
[a-z&&[def]] d,e,f (교차)
[a-z&&[^bc]] bc 를 제외하는 a ~ z: [ad-z] (감산)
[a-z&&[^m-p]] m ~ p 를 제외하는 a ~ z: [a-lq-z] (감산)
 
정의 끝난 캐릭터 클래스
. 임의의 캐릭터 (줄 끝 기호와 성냥 하는 경우도 있다)
\d 숫자: [0-9]
\D 숫자 이외: [^0-9]
\s 공백 캐릭터: [ \t\n\x0B\f\r]
\S 비공백 캐릭터: [^\s]
\w 단어 구성 캐릭터: [a-zA-Z_0-9]
\W 비단어 캐릭터: [^\w]
 
POSIX 캐릭터 클래스 (US-ASCII 마셔)
\p{Lower} 소문자의 영문자: [a-z]
\p{Upper} 대문자의 영문자: [A-Z]
\p{ASCII} 모든 ASCII 캐릭터: [\x00-\x7F]
\p{Alpha} 영문자: [\p{Lower}\p{Upper}]
\p{Digit} 10 진수자: [0-9]
\p{Alnum} 영숫자: [\p{Alpha}\p{Digit}]
\p{Punct} 구두점 캐릭터: ! "#$%&'()*+,-. /:;<=>? @[\]^_`{|}~ 의 언젠가
\p{Graph} 표시할 수 있는 캐릭터: [\p{Alnum}\p{Punct}]
\p{Print} 프린트 가능 캐릭터: [\p{Graph}]
\p{Blank} 공백 또는 탭: [ \t]
\p{Cntrl} 제어 캐릭터: [\x00-\x1F\x7F]
\p{XDigit} 16 진수자: [0-9a-fA-F]
\p{Space} 공백 캐릭터: [ \t\n\x0B\f\r]
 
Unicode 블록과 카테고리의 클래스
\p{InGreek} 희랍어 블록의 캐릭터 (단순블록)
\p{Lu} 대문자 (단순카테고리)
\p{Sc} 통화 기호
\P{InGreek} 희랍어 블록 이외의 캐릭터 (부정)
[\p{L}&&[^\p{Lu}]] 대문자 이외의 캐릭터 (감산)
 
경계 정규 표현 엔진
^ 행의 선두
$ 행의 말미
\b 단어 경계
\B 비단어 경계
\A 입력의 선두
\G 전회의 성냥의 말미
\Z 마지막줄 끝 기호가 있는 경우는 그것을 제외한 입력의 말미
\z 입력의 말미
 
최장 일치 수량자
X? X, 1 회 또는 0 회
X* X, 0 회 이상
X+ X, 1 회 이상
X{n} X,n
X(n,} X,n 회이상
X{n,m} X,n 회이상,m 회이하
 
최단 일치 수량자
X?? X, 1 회 또는 0 회
X*? X, 0 회 이상
X+? X, 1 회 이상
X{n}? X,n
X(n,}? X,n 회이상
X{n,m}? X,n 회이상,m 회이하
 
탐욕인 수량자
X? + X, 1 또는 0 회
X*+ X, 0 회 이상
X++ X, 1 회 이상
X{n}+ X,n
X(n,}+ X,n 회이상
X{n,m}+ X,n 회이상,m 회이하
 
논리 연산자
XY X 의 직후에 Y
X|Y X 또는 Y
(X) X,전방 참조를 실시하는 정규 표현 그룹
 
전방 참조
\n 성냥 한 n 번째의전방 참조를 실시하는 정규 표현 그룹
 
인용
\ 정규 표현은 아니지만, 다음의 캐릭터를 이스케이프 한다
\Q 정규 표현은 아니지만,\E 까지의 모든 캐릭터를 이스케이프 한다
\E 정규 표현은 아니지만,\Q 로 개시된 인용을 이스케이프 한다
 
특수한 구문 (전방 참조를 실시하지 않는다)
(? :X) X,전방 참조를 실시하지 않는 정규 표현 그룹
(? idmsux-idmsux)   정규 표현은 아니지만, 매치 플래그의 온/오프를 바꾼다
(? idmsux-idmsux:X)  X, 지정된 플래그를 온/오프로 한전방 참조를 실시하지 않는 정규 표현 그룹
(? =X) X, 폭제로의 긍정 예측
(?!X) X, 폭제로의 부정 예측
(? <=X) X, 폭제로의 긍정 후 읽기
(? <! X) X, 폭제로의 부정 후 읽기
(? >X) X, 독립한전방 참조를 실시하지 않는 정규 표현 그룹

 

 

 

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=72627095&qb=7KCV6rec7IudIOqzteuwsSDqsJztlok=&enc=utf8&section=kin&rank=5&search_sort=0&spq=0&pid=gdTbsloi5Usssszujyosss--124835&sid=TQVkdiBUBU0AABc1EO4

2010년 12월 3일 금요일

SMTP Mail System Status Codes

SMTP Mail System Status Codes

 

RFC 1893은 메일의 상태 정보(Delivery Status Notification: DNS)에 대해서 기술하고 있습니다. SMTP 응답 코드는 범용적인 메일 시스템의 에러와 세부적인 의미에 대해서 알 수 있도록 도와줌으로 메일 장애시 원인 분석과 해결에 도움이 됨으로 간략하게 알아보도록 하겟습니다.

 

메일 서버에서 보내는 응답코드는 3개의 숫자의 조합으로 이루어져 있습니다.

 

First Digit

1.X.X

명령어가 받아 들여졌지만 명령어의 처리를 계속할 것인가 그만 둘 것인가를 위해 다음 명령어가 필요

2.X.X

성공적으로 명령어가 완료

3.X.X

명령어가 받아 들였지만 또 다른 입력이 필요

4.X.X

일시적인 에러 조건

5.X.X

에러 발생

 

Second and Third Digits

두 번째 숫자는 좀더 자세한 정보를 주기 위한 상태 범주입니다.

X.0.Z

Other or Undefined Status (문법 에러)

X.1.Z

Addressing Status

X.2.Z

Mailbox Status

X.3.Z

Mail System Status

X.4.Z

Network and Routing Status

X.5.Z

Mail Delivery Protocol Status

X.6.Z

Message Content or Media Status

X.7.Z

Security or Policy Status

 

세 번째 숫자는 두 번째 숫자에 대한 보다 더 자세한 정보를 제공하기 위해서 사용됩니다.

X.1.0

Other address status

X.1.1

Bad destination mailbox address

X.1.2

Bad destination system address

X.1.3

Bad destination mailbox address syntax

X.1.4

Destination mailbox address ambiguous

X.1.5

Destination mailbox address valid

X.1.6

Mailbox has moved

X.1.7

Bad sender's mailbox address syntax

X.1.8

Bad sender's system address

X.2.0

Other or undefined mailbox status

X.2.1

Mailbox disabled, not accepting messages

X.2.2

Mailbox full

X.2.3

Message length exceeds administrative limit

X.2.4

Mailing list expansion problem

X.3.0

Other or undefined mail system status

X.3.1

Mail system full

X.3.2

System not accepting network messages

X.3.3

System not capable of selected features

X.3.4

Message too big for system

X.4.0

Other or undefined network or routing status

X.4.1

No answer from host

X.4.2

Bad connection

X.4.3

Routing server failure

X.4.4

Unable to route

X.4.5

Network congestion

X.4.6

Routing loop detected

X.4.7

Delivery time expired

X.5.0

Other or undefined protocol status

X.5.1

Invalid command

X.5.2

Syntax error

X.5.3

Too many recipients

X.5.4

Invalid command arguments

X.5.5

Wrong protocol version

X.6.0

Other or undefined media error

X.6.1

Media not supported

X.6.2

Conversion required and prohibited

X.6.3

Conversion required but not supported

X.6.4

Conversion with loss performed

X.6.5

Conversion failed

X.7.0

Other or undefined security status

X.7.1

Delivery not authorized, message refused

X.7.2

Mailing list expansion prohibited

X.7.3

Security conversion required but not possible

X.7.4

Security features not supported

X.7.5

Cryptographic failure

X.7.6

Cryptographic algorithm not supported

X.7.7

Message integrity failure

참조 : RFC 1893 Enhanced Mail System Status Codes

응답코드의 기본적인 의미가 RFC에 정의 되어 있지만 메일 서버 업체에서 임의로 바꾸는 경우도 있기 때문에 메시지가 일치하지 않을 수 있습니다.

 

SMTP 상태 정보를 확인하기 위해서는 SMTP G/W가 띄워져 있을 경우, 아래의 위치에서 확인할 수 있으며, 그렇지 않은 경우 메일 서버에서의 로그에서 확인하실 수 있습니다.

 

 

실제 예로 알아보는 SMTP 리턴 메일 메시지

 

421 Server too busy.

>> 수신측 서버의 응답지연. 수신서버의 과부하로 메일을 수신 받지 못하는 상황에서 발송자에게 리턴 메일을 보냄.

421-Microsoft ESMTP MAIL Service, Version: 5.0.2195.5600 ready at Service not available, closing transmission channel

>> MS사의 SMTP 서버의 장애로 인해 메일을 수신받지 못하는 상황에서 리턴된 메시지.

421 4.3.2 Your IP(210.122.83.50) is filtered and this connection will be closed. You must register your IP to spammaster@hanafos.com By SpaceLee, the Lord of mail server.

>> Hanafos.com 메일 서버에서 발송 주소를 스패머로 인식하여 해당 메일을 거부하는 메시지.

 

441 4.4.1 No answer from host

>> 수신측 서버의 응답이 없어서 리턴된 메시지.

 

451 Relay Server Not Ready.

>> 수신측 서버에서 릴레이 기능이 안되어 리턴된 메시지.

451 4.1.8 Domain of sender address Mailer-Daemon@Secure1.sppo.go.kr does not resolve (MAIL)

>> dreamwiz에 설정된 dns에서 secure1.sppo.go.kr에 대해서 resolve(도메인 이름 --> IP)가 되지 않고 일정시간이 지나 time-out이 발생한 경우입니다. 일시적인 현상입니다.

451 4.4.0 DNS resolving error

>> 수신측 서버의 도메인을 못 찾아 리턴된 메시지.

451 4.3.0 Other or undefined mail system status

>> 수신측 메일 시스템의 프로토콜이 틀리거나 수신 SMTP 서버가 아닐 경우 리턴되는 메시지.

451 4.3.0 Temporary system failure. Please try again later.

>> 수신 서버의 일시적인 장애로 인해 메일을 수신 받지 못해 리턴된 메시지.

451 4.4.2 Bad connection (io timeout)

>> 수신 서버의 응답이 없어서 응답시간이 초과 되어 리턴된 메시지.

 

452 4.4.5 Insufficient disk space; try again later

>> 수신서버의 디스크용량이 부족하여 메일을 수신받지 못해 리턴된 메시지.

 

500 Syntax Error, Command Unrecognized EHLO mo02.hanafos.com

>>발송자의 메일 발송기(아웃룩, 유도라 등등)에서 메일발송시 수신측 메일 서버에서  SMTP 명령어를 인식하지 못해 리턴된 메시지.

500 5.5.1 Command unrecognized: "XXXX mo02.hanafos.com"

>> 수신서버가 SMTP 명령어를 인식 하지 못함. (위와 동일).

 

SERVER REPLY: 501 Denied domain name

>> 도메인주소를 잘못 입력 or 수신 측에서 도메인을 수신 거부한 경우

501 5.1.8 Domain of sender address Mailer-Daemon@abcdefg.co.kr does not exist (MAIL)

>> 수신측 DNS 서버에서 abcdefg.co.kr에 대한 dns query가 안되어서 발생한 경우입니다.

 

502 Not implemented

>> 수신측 서버가 SMTP 명령어를 인식 하지 못해 리턴된 메시지.

 

505 Authentication required

>> 수신측 서버가 릴레이 인증 등을 허용하지 않아 리턴된 메시지.

 

512 5.1.2 Bad destination system address

>> 수신서버의 장애나 네트웍 트래픽등으로 수신서버가 응답이 없을 때 리턴된 메시지

 

550 Invalid recipient lobster@fernand.com

>> 수신자 계정을 찾지 못해 리턴된 메시지 .

550 RCPT <hghwe@kornet.net> ERROR. Mailbox doesn't exist

>> 수신자 메일함이 존재 하지 않아서 리턴된 메시지.

550 Requested action not taken: mailbox unavailable

>> 수신자의 메일함을 찾지 못해 리턴된 메시지.

550 Mail is reject ( filtering reject )

>> 수신 서버에서 발신자의 메일 주소나 IP필터링 하여 거부되어 리턴된 메시지.

550 5.1.1 Suspended user <xxxxxxxxx@lycos.co.kr> 

>> 수신자의 사용자의 계정이 중단 상태.

550 5.1.1 <gqwqf@oullim.co.kr>... User unknown

>> 수신자 (gqwqf@oullim.co.kr)계정을 찾지 못해 리턴된 메시지.

550 5.7.1 <gyunu@chollian.net>... Access denied.(211.202.13.144) <gyunu@chollian.net>

>> 수신자(gyunu@chollian.net)가 발신자의 메일주소를 수신 거부한 상태.

550 5.7.1 <smlee@mbestek.co.kr>... Relaying denied. IP name lookup failed [211.202.13.144]

>> 수신 서버에서 발신자의 IP에 대해 릴레이 거부를 하여 메일을 보내지 못해 리턴된 메시지.

550 5.7.1 Unable to relay for lyc410@hanafos.net

>> 수신 서버에서 릴레이 거부를 하여 리턴된 메시지.

 

553 sorry, your envelope sender is enlisted as spammer.

>> 발신자의 메일 주소가 수신서버상의 스패머 리스트에 등록 되어 리턴된 메시지.

553-This target address is not our MX service

>> 수신자의 주소가 수신서버에서 서비스 안하는 도메인일 경우 리턴된 메시지.

553 sorry, that domain isn't in my list of allowed rcpt hosts

>> 발신자의 메일 도메인주소 자체가 수신 서버에서 차단되어 리턴된 메시지.

553 5.0.0 We do not accept mail from spammers - If you have questions,please email admin@www.narun.net.

>> 발신자의 메일 계정이 스패머로 수신서버에서 등록이 되어 리턴된 메시지.

553 5.0.0 Your message may contain the Win32.Klez worm!!- If you have questions,please email postmaster@ecweb-1.blueweb.co.kr.

>> 발신자의 메일에서 Win32.Klez 라는 웜바이러스가 발견되어 리턴된 메시지.

553 5.1.8 <uni@honorstech.com>... Domain of sender address uni@honorstech.com does not exist

>> 발신자의 도메인에 대해 수신서버에서 체크 하여 없는 도메인일 경우 리턴시킨 메시지.

 

554 <jhbaek@st.com>: Recipient address rejected: Access denied

>> 수신자가 발신자의 계정에 대해 수신 거부를 설정함.

554 1048035239.13309.hanmir accept failed. [code=-1]

>> hanmir 서버에서 응답이 안돼어 리턴된 메시지.

554 delivery error: dd Sorry, your message to bk6218@yahoo.co.kr cannot be delivered.  This account is over quota. - mta111.mail.yahoo.co.kr

>> 수신자의 메일함 용량 초과로 인해 리턴된 메시지.

554 5.1.0 Sender Denied

>> 발신자의 계정을 수신서버에서 수신 거부함.

554 5.3.0 Mail have traversed Too many hops. Reject it.

>> 발신자가 메일을 보낼 때 동보메일로 수신자의 메일 계정을 수신서버의 제한량 이상 넣어 보내어 리턴된 메시지.

554 5.3.2 Rejected by mailbox host. REPLY:(250 <ahnmin@thinknet.or.kr>... Sender ok)

>> 수신자가 발송자의 메일 계정에 대해 수신 거부를 하여 리턴된 메시지 .

554 5.3.2 Rejected by mailbox host. REPLY:(550 5.1.1 unknown or illegal alias: kgng_h_w@samsung.com)

>> 수신자가 발송자의 메일 계정에 대해 수신거부를 설정하여 리턴된 메시지.