The following is a simple script that is designed to run an application and, if the application produces any output, e-mail that application’s output to a given address. I use this for several of my custom scripts used for updates and backups. I have an e-mail mailbox setup just for logging purposes. To use this script, simply replace bebop.turtles.sumdami.net with the address of your local SMTP server.
#!/usr/bin/env ruby require 'net/smtp' def mailOutput(command,from,to,subject) msghead = "From: #{from}\nTo: #{to}\nSubject: #{subject}\n\n" msgstr = "" IO.popen(command+' 2>&1') { |f| msgstr += f.read } if not msgstr.strip.empty? then smtp = Net::SMTP.start("bebop.turtles.sumdami.net",25) smtp.send_message msghead+msgstr,from,to smtp.finish end end if ARGV.length != 4 then puts 'Usage: email_log.rb <command> <from> <to> <subject>' exit 1 else mailOutput ARGV[0],ARGV[1],ARGV[2],ARGV[3] exit 0 end