require 'rubygems' require 'pp' require_gem 'actionmailer' require 'net/https' ActionMailer::Base.server_settings = { :address => 'mail.myserver.com', :port => 25, :domain=> 'myserver.com', :user_name=> 'admin', :password=> 'mypassword', :authentication=> :login } ActionMailer::Base.template_root = 'templates' ActionMailer::Base.delivery_method = :smtp class MyMailer < ActionMailer::Base def excel ( email_address ) get_excel date = Time.new.strftime('%m%d%Y') @recipients = email_address @subject = "[myserver.com] Database Dump : #{date}" @from = "admin@myserver.com" attachment "application/vnd.ms-excel" do |a| a.body = File.read('mydatabase.xls') a.filename = "mydatabase-#{date}.xls" end end private def get_excel http = Net::HTTP.new( 'www.myserver.com', 80 ) http.use_ssl = false http.start do |http| request = Net::HTTP::Get.new('/dh_phpmyadmin/mysql.myserver.com/export.php?db=mydatabase&export_type=database&what=htmlexcel&header_comment=&sql_compat=NONE&sql_structure=structure&sql_auto_increment=1&use_backquotes=1&sql_data=data&showcolumns=yes&extended_ins=yes&max_query_size=50000&hexforbinary=yes&sql_type=insert&latex_caption=yes&latex_structure=structure&latex_structure_caption=Structure+of+table+__TABLE__&latex_structure_continued_caption=Structure+of+table+__TABLE__+%28continued%29&latex_structure_label=tab%3A__TABLE__-structure&latex_data=data&latex_showcolumns=yes&latex_data_caption=Content+of+table+__TABLE__&latex_data_continued_caption=Content+of+table+__TABLE__+%28continued%29&latex_data_label=tab%3A__TABLE__-data&latex_replace_null=%5Ctextit%7BNULL%7D&csv_data=csv_data&export_separator=%3B&enclosed=%22&escaped=%5C&add_character=%5Cr%5Cn&csv_replace_null=NULL&excel_data=excel_data&excel_replace_null=NULL&excel_edition=win&htmlexcel_data=htmlexcel_data&htmlexcel_replace_null=NULL&htmlword_structure=structure&htmlword_data=data&htmlword_replace_null=NULL&pdf_data=pdf_data&pdf_report_title=&xml_data=xml_data&asfile=sendit&filename_template=__DB__&remember_template=on&compression=none') request.basic_auth 'myusername', 'mypassword' response = http.request(request) File.open('mydatabase.xls', 'r+'){ |f| f << response.body } end end end MyMailer.deliver_excel('client@clientserver.com')
You need to create an account or log in to post comments to this site.