ruby send e-mail & mysql
新項目初期,沒什么完善的后臺系統,想每天定時看看玩家充值情況,年前開始學了點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自己搜去吧~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
說明:
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
posted on 2013-04-08 18:28 Sheppard Y 閱讀(412) 評論(0) 編輯 收藏 引用 所屬分類: 其他語言