新项目初期,没什么完善的后台系统,想每天定时看看玩家充值情况,年前开始学了点ruby,就随便捣鼓了个ruby访问mysql然后发邮件的脚本。好久没更新博客,先滥竽充数下,哈哈……
1 #!/usr/local/bin/ruby
2 #Author: sheppard(ysf1026@gmail.com) 2013-02-16
3 # Desc:
4 #
5 require 'rubygems'
6 require 'net/smtp'
7 require 'mysql'
8 total_money = 0
9 begin
10 con = Mysql.new _host, _user, _pwd, _dbname
11 (0..9).each do |i|
12 rs = con.query "select sum(order_money) ordermoney from table_#{i}"
13 total_money += rs.fetch_row[0].to_i
14 end
15 rescue Mysql::Error => e
16 puts e.errno
17 puts e.error
18 ensure
19 con.close if con
20 end
21 eval File.read("smtp-tls.rb")
22 msgstr = <<MESSAGE_END
23 From: monitor <XX@126.com>
24 To: sheppard <XX@XX.com>
25 Subject: money report
26 XX Project, total money: #{total_money}
27 MESSAGE_END
28 Net::SMTP.start('smtp.126.com', 25, '126.com', _mail_user_name, _mail_password, :plain) do |smtp|
29 smtp.send_message msgstr, 'XX@126.com', 'XX@XX.com'
30 end
参考的几个网址家里没FQ就先不给了。有空补上,或者大家有google或者stackoverflow自己搜去吧~
说明:
1. Net::SMTP.start的第二个参数是mail服务器的smtp的端口,各邮件服务提供商的可能会不能,例如google的就不是这个25。
ps:2013年2月24日我在CU的博文
补充:send_email抽出到:https://github.com/yangsf5/ruby-part/tree/master/product/send_email