骨のダイスを転がそう
2013-02-20
_ [Ruby] ruby 1.8.5 で TMail を使わず日本語メール
今どき、こんな環境でピュアRuby でメール送信する必要があったんじゃ……。
require "mail"
require "iconv"
module Mail
class SubjectField < UnstructuredField
def initialize(value = nil, charset = 'ISO-2022-JP')
self.charset = 'ISO-2022-JP'
super(CAPITALIZED_FIELD, strip_field(FIELD_NAME, value), self.charset)
self.value = value
end
def encoded
"Subject: " + NKF.nkf("-JM", NKF.nkf("-jW", self.value) ) + "\n"
end
def decoded
self.value
end
end
end
mail = Mail.new("Content-Type: text/plain; charset=ISO-2022-JP")
mail.from "hoge@fuga.jp"
mail.to "foo@bar.com"
subject = "こんにちは、これはテストです。"
mail.subject subject
body =<<-"EOL"
こんにちは
お元気ですか
ではさようなら
EOL
mail.body Iconv.iconv("iso-2022-jp", "utf-8", body).join("")
mail.delivery_method :smtp, { :address => "localhost",
:port => "25" }
mail.deliver!
[ツッコミを入れる]