좋아, 이것은 Github에서 찾을 수있는 Fetcher 플러그인을 사용하는 것이 더 쉬운 것으로 입증되었습니다. 작업 표시되는 방식에 관심이 사람들을 위해, 여기에 내가 무슨 짓을했는지의 :
1) 그래서 같은 가져 오기 플러그인을 설치 : 스크립트/플러그인 자식을 설치 :
를 //github.com/look/fetcher.git
2) 지시 사항은 생성기를 실행하여 다음과 같은 데몬을 만드는 것이 좋습니다. script/generate fetcher_daemon MailerDaemon. 내가 config/당신이 귀하의 메일 서버 정보 (내 경우에는 Gmail에서)로 수정할 수있는 YML 파일을 생성하기 때문에이 일을하는 것이 좋습니다.
또한 Fetcher를 실행하는 데몬을 생성합니다. 나는 이것을 사용했지만 일관되게 다음과 같은 오류가 발생했습니다 : mysql :: 오류 : MySQL 서버가 사라졌습니다 : SHOW FIELDS FROM email_blacklists
. 이것은 MySQL이 레코드를 저장할 수 있기 전에 데몬 프로세스가 사라져서 데몬을 사용하지 않고 대신 cron을 설정했습니다.
3) 메일 설정으로 mail.yml로 이름을 바꾼 config에서 .yml 파일을 구성하십시오. Gmail은 팝, 그들은이 싶 보일 :
모델/mail_processor.rb
class MailProcessor < ActionMailer::Base
def receive(email)
email = EmailBlacklist.find_or_create_by_email(email.to.first)
end
def self.grab_bounces
config = YAML.load_file("#{RAILS_ROOT}/config/mail.yml")
config = config[RAILS_ENV].to_options
fetcher = Fetcher.create({:receiver => MailProcessor}.merge(config))
fetcher.fetch
end
end
lib 디렉토리/작업/mail.rake : 여기
development:
type: pop
server: pop.gmail.com
port: 995
ssl: true
username: [email protected]
password: mypassword
당신이 처리하는 데 필요한 코드입니다
그러면 스크립트/디렉토리에 자동 생성 된 mailer_daemon_fetcher.rb 파일을 던질 수 있습니다.
다른 사람에게 도움이되기를 바랍니다. 테스트를 원할 경우 콘솔에서 MailProcessor.grab_bounces를 호출하면됩니다. 받은 편지함에 액세스하도록 구성된 이메일이 있는지 확인하십시오.
btw-500 비회원 Google 메일 – s84
으로 감사합니다. 샘, 문제가되지 않을 것입니다. – aressidi