Ever wondered how to forward email in Ruby?
#!/usr/bin/env ruby
require 'net/imap'
require 'net/smtp'
# Author: Sergei Velhas, sergei@velhas.net
FORWARD_TO = ["users@example.com","mail2@example.com"]
MAILBOX_LOGIN = "user"
MAILBOX_PASSWORD = "password"
FROM = 'user@example.com'
MAILSERVER = 'mbox.example.com'
imap = Net::IMAP.new(MAILSERVER)
imap.authenticate('LOGIN', MAILBOX_LOGIN, MAILBOX_PASSWORD)
imap.examine('INBOX')
imap.search(["UNSEEN"]).each do |message_id|
envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
# Adjust the if clause to suit the needed automation level
if envelope.from[0].name =~ /John Doe/ then
puts "\n\n Going to forward the message from #{envelope.from[0].name}: \t#{envelope.subject} \n\n"
email = <<END_OF_MESSAGE
Subject: #{envelope.subject}
#{imap.fetch(message_id, "BODY[TEXT]")[0].attr["BODY[TEXT]"]}
END_OF_MESSAGE
Net::SMTP.start('mboxld.ericpol.int') do |smtp|
smtp.sendmail(email, FROM,FORWARD_TO)
end
imap.store(message_id, "+FLAGS", [:Seen])
end
end
#!/usr/bin/env ruby
require 'net/imap'
require 'net/smtp'
# Author: Sergei Velhas, sergei@velhas.net
FORWARD_TO = ["users@example.com","mail2@example.com"]
MAILBOX_LOGIN = "user"
MAILBOX_PASSWORD = "password"
FROM = 'user@example.com'
MAILSERVER = 'mbox.example.com'
imap = Net::IMAP.new(MAILSERVER)
imap.authenticate('LOGIN', MAILBOX_LOGIN, MAILBOX_PASSWORD)
imap.examine('INBOX')
imap.search(["UNSEEN"]).each do |message_id|
envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
# Adjust the if clause to suit the needed automation level
if envelope.from[0].name =~ /John Doe/ then
puts "\n\n Going to forward the message from #{envelope.from[0].name}: \t#{envelope.subject} \n\n"
email = <<END_OF_MESSAGE
Subject: #{envelope.subject}
#{imap.fetch(message_id, "BODY[TEXT]")[0].attr["BODY[TEXT]"]}
END_OF_MESSAGE
Net::SMTP.start('mboxld.ericpol.int') do |smtp|
smtp.sendmail(email, FROM,FORWARD_TO)
end
imap.store(message_id, "+FLAGS", [:Seen])
end
end
0 коммент.:
Post a Comment