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()