2013-01-12 1 views
7

내가 이해 한대로 Regex는 주어진 문서에서 전자 메일을 검색 할 때 가장 좋은 방법이 아닙니다. 이것에 대한 대안이 있는지 궁금합니다. 아니면 내가 모르는 가장 좋은 연습 방법?Ruby - 텍스트 또는 HTML의 전자 메일 구문 분석

+0

문서의 이메일은 어떻게 생겼습니까? –

+0

정규식을 사용하지 않는 이유는 무엇입니까? 사람들은 매우 긴 시간 동안 전자 메일을 정의하는 정규식에 대해 문자열을 테스트 해 왔습니다. –

+0

"이메일"로 무엇을 의미하는지 정의하십시오. 받는 사람 :/보낸 사람 :/제목 : 헤더? 이메일 주소? 어느 것이 든간에, 당신의 질문을 업데이트하고 좀 더 설명하십시오. 또한 추출 할 대상 데이터를 포함하여 검색 할 텍스트의 예를 표시하십시오. –

답변

15

구문 분석 작업의 경우 항상 라이브러리를 사용하는 것이 좋습니다. 당신이 바로, 도서관은 항상 서로 다른 경우를 고려, 정규 표현식보다 더 상세하게 문제를 처리 할 것이다하는 등

이메일을 구문 분석 한 루비 라이브러리 Mail입니다 :

메일 인터넷입니다 Ruby 용 라이브러리는 이메일 generation, 을 구문 분석하고을 파싱하여 간단하게 rubyesque 방식으로 전송합니다.

[...] 메일이 정말 당신이 무엇을하는지 아는 경우, 구문 분석하는 전자 메일 메시지를 열어 매우 간단한 객체 지향 시스템 설계되었습니다, 당신은 모든 마지막 비트 바이올린 할 수 있습니다 이메일 직접. 그것은 또한 다중 이메일뿐만 아니라 테스트를 구문 분석하고 첨부 파일을 추출 할 수 있습니다

mail = Mail.read('/path/to/message.eml') 

mail.envelope.from #=> '[email protected]' 
mail.from.addresses #=> ['[email protected]', '[email protected]'] 
mail.sender.address #=> '[email protected]' 
mail.to    #=> '[email protected]' 
mail.cc    #=> '[email protected]' 
mail.subject   #=> "This is the subject" 
mail.date.to_s  #=> '21 Nov 1997 09:55:06 -0600' 
mail.message_id  #=> '<[email protected]>' 
mail.body.decoded #=> 'This is the body of the email... 

: 여기

이메일의 내용에 액세스하는 방법의 예입니다.

+0

'@my_subject_variable = mail.envelope.from'과 같은 것이 아니라 위의 모든 유형의 예제 만 보았습니다. 좋은 복사 및 붙여 넣기 작업입니까? 아니면 모두가 같은 예제를 사용하는지 이유가 있습니까? –

+1

@HerbMeehan 예제는 저장소의 README 파일에서 가져온 것입니다. 확실히, 당신은 당신이 제안한 방식으로 그것을 사용할 수 있습니다. –

관련 문제