Ruby-mail-filter
Материал из Ksimute
Задача следующая: Падает много почты от роботов (nagios, jira, bacula etc.) надо разложить по папкам на IMAP сервере (ну если папок нет - посоздавать) Ruby недавно изучть начал. Собственно язык понравился. Простой, понятный, и все что нужно уже есть.
#!/usr/bin/ruby
require 'net/imap'
@imap = Net::IMAP.new('MY-IMAP-HOST.com',port='993',ssl='true')
@imap.login('sergey@mydomain.com', 'megasecurepassword')
def imapFilter (fromSender,destFolder)
begin
@imap.select(destFolder)
rescue => e
begin
p "Folder not found; creating..."
@imap.create(destFolder)
@imap.select(destFolder)
rescue => ee
p "Error: could not create folder: #{e}"
next
end
end
@imap.select('INBOX')
@imap.search(["FROM",fromSender,"NOT", "DELETED"]).each do |message_id|
@imap.copy(message_id,destFolder)
@imap.store(message_id, "+FLAGS", [:Deleted])
end
end
imapFilter("tickets@serverbeach.com","Peer1")
imapFilter("noreply@jira.MYDOMAIN.com","Jira")
imapFilter("nagios@nagios2-1","Nagios")
@imap.expunge
@imap.logout()
@imap.disconnect()