2012-04-25 5 views
6

확인해야하는 이메일을 만드는 Watir을 사용하여 자동화를 수행하고 있습니다. 나는 이것을 할 수있는 가장 쉬운 방법이라고 이메일 보석에 지적했다.ruby에서 "mail"gem을 사용하여 이메일을 읽는 데 도움이 필요합니다.

다음 코드를 추가하고받은 편지함에서 첫 번째 이메일을 가져올 수 있습니다.

require 'mail' 
require 'openssl' 

Mail.defaults do 
    retriever_method :pop3, :address => "email.someemail.com", 
          :port  => 995, 
          :user_name => 'domain/username', 
          :password => 'pwd', 
          :enable_ssl => true 
end 

puts Mail.first 

나는 다음과 같은 질문이 포럼에 새로운 오전이 있습니다

  1. 어떻게 모든 읽지 않은 이메일을받을 수 있나요? 나는 Mail.all, Mail.first, Mail.last을 시도했지만 읽지 않은 이메일은 반환하지 않습니다.

  2. 전자 메일 내에있는 모든 링크를 어떻게 얻을 수 있습니까? 또는 특정 이메일의 메일 본문을 메일로 보내시겠습니까? 첫 번째 읽지 않은 이메일의 본문을 가져와야합니다.

  3. 내받은 편지함에 하위 폴더가 있으면 특정 폴더에서 이메일을받을 수 있습니까?

+0

Watir은 귀하의 질문과 관련이 없습니다. 어떻게 작동하는지 잘 모르겠지만 올바른 태그를 선택해야한다고 생각합니다. –

답변

1

일부는 documentation입니다. Mail.all은 읽은 전자 메일을 포함한 모든 전자 메일을 반환합니다. Mail.first는 읽지 않은 첫 번째 문자를 반환합니다. 나는 다시 그 일을 행하면 다음 읽지 않은 것을 돌려 줄 것이라고 생각합니다. 귀하의 시스템이 통제된다면, 읽지 않은 이메일에 대해 걱정할 필요가 없습니다. 내가 너라면, IRB에서 그걸 다루기 전까지 IRB에서 시도해 볼 것이다. 어쩌면 더 쉽게 사용할 수있는 수업을 만들 수도있다. 행운을 빕니다.

업데이트 : Mail gem의 문서. Mail.first가 읽지 않은 이메일을 (항상) 반환하지 않으면 작성자는 알아야합니다. 문제를 제출할 수 있습니다. 나는 그 보석을 나 자신으로 사용하지 않는다. 테스트 용으로 gmail gem을 사용합니다.

Mail.all #=> Returns an array of all emails 
Mail.first #=> Returns the first unread email 
Mail.last #=> Returns the first unread email 
+0

아니, 내가 일하지 않았다. – user1356838

+0

은 Mail.First와 함께 항상받은 편지함의 첫 번째 이메일을 검색합니다. 읽지 않은 첫 번째 전자 메일을 사서함에서 검색하지 않습니다. – user1356838

+0

나는 또한 모든 읽지 않은 메일 만 받고 싶습니다. 그러나 나는 똑같은 문제가있다. Mail.all은 모든 메일을 검색한다. Mail.first는 첫 번째 것을 읽는다. –

0

방법은 나중에 날짜보다 모든 메일 프로세스 메일을 읽을 때 다음 다음 번에 메일을 읽고 시간을 저장하는 방법에 대한? 나는 itz 해결 방법을 알고 있지만 그것은 메일 보석으로 지원되지 않습니다 믿습니다. Mailman gem은 그것을 지원하지만 일단 처리하면 메일을 삭제합니다.

13

구역 6.4.4 of the IMAP protocol은 메시지를 검색하는 데 사용할 수있는 여러 가지 검색 플래그를 나타냅니다.

당신과 같이 찾기 방법에 검색 플래그를 전달하여에만 새 메시지를 검색 할 수 있습니다

new_messages = Mail.find(keys: ['NOT','SEEN']) 

이 메시지는 또한 issue on the Mail GitHub repo에 대답했다.

관련 문제