pacojp-skutil 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/skutil.rb +113 -0
  2. metadata +4 -3
data/lib/skutil.rb ADDED
@@ -0,0 +1,113 @@
1
+
2
+ require 'net/smtp'
3
+ require 'kconv'
4
+
5
+ module Skutil
6
+ class Mail
7
+ def self.send(from,to,title,body,smtp_addr='127.0.0.1',smtp_port=25)
8
+ from_addr,from_addr_4_header = create_addr_and_header(from)
9
+ title = Kconv.tojis(title)
10
+ title = title.split(//,1).pack('m'); title = title.chomp
11
+ if to.class.to_s == 'Array'
12
+ tomany = to.join(',')
13
+ else
14
+ tomany = to.to_s;
15
+ end
16
+
17
+ head = <<HEAD
18
+ Subject: =?ISO-2022-JP?B?#{title}?=
19
+ To: #{tomany}
20
+ From: #{from_addr_4_header}
21
+ Mime-Version: 1.0
22
+ Content-Transfer-Encoding: 7bit
23
+ Content-Type: Text/Plain; charset=iso-2022-jp
24
+ HEAD
25
+ src = head + "\n" + Kconv.tojis(body)
26
+ # puts src
27
+ m = Net::SMTPSession.new(smtp_addr, smtp_port)
28
+ m.start()
29
+ m.sendmail(src, from_addr, to)
30
+ m.finish
31
+ end
32
+
33
+ def self.create_addr_and_header(addr_data)
34
+ addr = ''
35
+ addr_4_header = ''
36
+
37
+ case addr_data.class.to_s
38
+ when 'String'
39
+ addr = addr_data.dup
40
+ addr_4_header = addr.dup
41
+ when 'Array'
42
+ addr = addr_data[1].dup
43
+ addr_4_header = addr_data[0].dup
44
+ addr_4_header = Kconv.tojis(addr_4_header)
45
+ addr_4_header = addr_4_header.split(//,1).pack('m'); addr_4_header = addr_4_header.chomp
46
+ addr_4_header = "=?ISO-2022-JP?B?#{addr_4_header}?=<#{addr}>"
47
+ else
48
+ # TODO exception
49
+ raise 'addr_data must be String or Array'
50
+ end
51
+ return addr,addr_4_header
52
+ end
53
+ end
54
+
55
+ class Server
56
+ def self.ip_address
57
+ ifconfig = `/sbin/ifconfig`
58
+ ips = []
59
+
60
+ # TODO mac
61
+ ifconfig.gsub(/inet addr:(\d+\.\d+\.\d+\.\d+)/){|ip|
62
+ if $1 != '127.0.0.1'
63
+ ips << $1
64
+ end
65
+ }
66
+ return ips
67
+ end
68
+
69
+ def self.hostname
70
+ `/bin/hostname`.chomp
71
+ end
72
+
73
+ def self.df
74
+ `/bin/df -h`.chomp
75
+ end
76
+
77
+ def self.execute(command)
78
+ `#{command}`.chomp
79
+ end
80
+
81
+ def self.environment
82
+ self_methods = self.methods - Class.methods
83
+ self_methods.delete("environment")
84
+ self_methods.delete("execute")
85
+ st = ""
86
+ self_methods.each do |method|
87
+ st << "#{method}:\n #{self.send(method).to_s.split("\n").join(" \n")}\n"
88
+ end
89
+ return st
90
+ end
91
+ end
92
+ end
93
+
94
+ if __FILE__ == $0
95
+
96
+ puts Skutil::Server.environment
97
+
98
+ # 簡易テスト
99
+ if ARGV.size == 1
100
+ from = ARGV[0]
101
+ subj = 'テストメール~~'
102
+ to = [ARGV[0]]
103
+ body = <<BODY
104
+ こんにちは
105
+ どないでしょう??
106
+ 〜〜〜
107
+ #{Skutil::Server.environment}
108
+ BODY
109
+ Skutil::Mail.send(from,to,subj,body)
110
+ else
111
+ puts "mail test neet ARGV[0]"
112
+ end
113
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacojp-skutil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - paco
@@ -21,8 +21,9 @@ extensions: []
21
21
 
22
22
  extra_rdoc_files: []
23
23
 
24
- files: []
25
-
24
+ files:
25
+ - lib
26
+ - lib/skutil.rb
26
27
  has_rdoc: false
27
28
  homepage: http://github.com/pacojp/skutil/tree/master
28
29
  post_install_message: