2010-07-30 5 views
1

레일즈 어플리케이션에 루비를 만들었으며 사용자가 응용 프로그램에 전자 메일을 보내고 응용 프로그램에서 전자 메일을받을 수있게하려고합니다 데이터베이스에 문제점 레코드를 작성하십시오. 레일 응용 프로그램에서 전자 메일을 가져 와서 본문을 파싱하고 문제 표에 붙여 넣을 때 사용할 수있는 GEM 또는 코드가 있습니까?레일 레일 어플리케이션이 전자 메일에 응답하고 데이터베이스에 레코드를 작성하는 코드

답변

2

전체 작업을 수행 할 수있는 보석이 있는지는 잘 모르겠지만 기술적으로 필요하지는 않습니다. 저는 최근에 이것을했는데 루비의 IMAP 라이브러리로 작업하는 것이 세계에서 가장 재미 있고 직관적 인 것이 아니지만 일을 끝내게됩니다.

IMAP를 사용하면 프로그래밍 방식으로 전자 메일 계정에 액세스하고 전자 메일 계정과 상호 작용할 수 있습니다. 이 예에서

require 'net/imap' 

imap = Net::IMAP.new("imap.gmail.com", 993, true) 
imap.login(CONFIG["username"], CONFIG["password"]) 
imap.select('INBOX') 
imap.search(["NOT", "DELETED"]).each do |mail_id| 
    mail = TMail::Mail.parse(imap.fetch(mail_id, "RFC822").first.attr["RFC822"]) 
    do_something_cool(mail) 
    imap.store(mail_id, "+FLAGS", :Deleted) 
end 
imap.expunge 
imap.logout() 
imap.disconnect() 

, I에서, IMAP 라이브러리 Gmail 계정에 액세스하는받은 편지함으로 이동하고, 각 잡는 해요 : 여기에 바로 내 코드에서 (somwhat 사람을 구현하기 쉽게 될 난독 화) 예입니다 삭제되지 않은 메일. 필요한 것은 아니지만 TMAIL 보석을 사용하면 이메일을 훨씬 쉽게 처리 할 수 ​​있습니다. 내 경우에는 이메일을 구문 분석 한 후 이메일을 삭제해야하므로 이메일에 삭제 플래그를 추가 한 다음 삭제가 완료되면 삭제 된 이메일의 계정을 모두 지 웁니다.

다음 단계에서는 원하는 데이터를 전자 메일로 구문 분석하고이 데이터를 기록합니다. 나는 그 부분을 구현 자에게 맡긴다.