2009-09-16 2 views
0

주어진 작업 : 전자 메일은 데이터베이스의 하나 이상의 고정 길이 청크에 바이트 단위로 저장됩니다. 이 메일은 해당 데이터베이스에서 검색되며 그 내용은 사용자에게 표시됩니다.데이터베이스에서 MIME 전자 메일 검색 및 구문 분석

레거시 데이터베이스를 ActiveRecord 모델로 랩핑하고 저장된 청크를 연결하는 데 문제가 없습니다. 내가 모르는 부분은 MIME 파싱 부분에서 시작해야하는 부분입니다. 데이터베이스에 저장된 데이터로 초기화 할 수있는 전용 EMail 클래스를 가지고있는 것과 같은 것에 대해 생각해 보았습니다.이 클래스를 사용하면 메일의 MIME 부분을 볼 수 있었고 그 중 text/* 부분을 볼 수있었습니다. .

이제는 ActionMailer가 들어오는 메일을 구문 분석 할 수 있지만 메일 수신에 대한 부담은 오히려 "스파 스 (sparse)"인 것처럼 보이며 STDIN의 메일 수신을 언급합니다.

하나의 문자열, 변수, 쿼리 결과 또는 그와 비슷한 내용을 제공 할 수 있다면, Rails에서 MIME 메일 (또는 그 일부)을 구문 분석하고 표시하려면 어떻게해야합니까?

답변

0

MMS2R을 살펴보십시오.

나는 이메일을 파싱하기 위해 최근에 사용 해왔고 유쾌한 일을 잘 수행합니다.

0

나는 그것을 잘못했다. Rails는 TMail library과 함께 제공되며 MIME 이메일을 완벽하게 분석 할 수 있습니다. 기본 워크 플로는 하나의 저장 메시지에서 청크을 연결하고 다음과 같이 TMail::Mail.parse로 전달하는 것만 큼 쉽습니다 :

email = TMail::Mail.parse(StoredMessage.find(:all, 
    :conditions => ["mail_id = ?", "oyByGqacG73b"], 
    :order => "chunk_ind").collect(&:mail_text).join) 

email.body #=> this is your test body 
email.subject # => test subject 
email.has_attachment? #=> true 
email.attachments.first.original_filename # => bulkfile 

정말 레일의 전체 라이브러리를 놓친 데 대해 사과 않습니다.

+0

"has_attachment * s *?" (복수형)은 메서드의 올바른 이름입니다. –

0

"has_attachment * *?" (복수형)은 메서드의 올바른 이름입니다.

+1

이것은 실제로 주석이며 질문에 대한 대답이 아닙니다. 당신은 항상 자신의 게시물에 대해 의견을 말할 수 있으며 충분한 [평판] (http://stackoverflow.com/faq#reputation)을 갖게되면 [모든 게시물에 댓글을 달 수 있습니다] (http://stackoverflow.com/ 권한/설명). –

+0

감사합니다. 끝냈어. –

관련 문제