ruby1.9.2でメールを送信する
rubyバージョン
$ ruby -v ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
メール送信するクラスを作ってみた
class SendMail
require 'net/smtp'
def initialize(from,to,sub,server,port=25)
@from = from
@to = to
@sub = sub
@server = server
@port = port
end
def make_header
@header =
"From: #{@from}\n"+
"To: #{@to}\n"+
"Subject: #{@sub}\n"+
"Date:#{Time::now}\n"
"Mime-Version: 1.0\n"+
"Content-Type: text/plain; charset=UTF-8\n"+
"Content-Transfer-Encoding: 8bit\n"
return @header
end
private :make_header
def make_body
@body = ""
File.open('./template/hoge.txt') {|f|
f.each{|line| @body +=line}
}
return @body
end
private :make_body
def send
@msg = make_header() + make_body()
Net::SMTP.start(@server,@port) {|smtp|
smtp.send_mail(@msg,@from,@to)
}
end
end
上のクラスを使って送信する
#!/usr/bin/ruby -Ku require './class/SendMail.rb' sm = SendMail.new( "from_hoge@hoge.com", "to_hoge@hoge.com", "Title", "hoge.or.jp" ) sm.send()
ruby1.9では文字列処理の関係で怒られるみたい
/usr/lib/ruby/1.9.1/net/protocol.rb:305: warning: regexp match /.../n against to UTF-8 string
こんなふうに。
でも、気にしない。