CentOS 5.x 環境で、Rubyで日本語のメール送信を行うための必要な手順をまとめてみました。メール送信には、tmailを使っています。
========================================
1. dlutterリポジトリ追加
========================================
gemsをインストールするためにdlutteリポジトリを追加します。
dlutteリポジトリの設定ファイルを作成します。
# vi /etc/yum.repos.d/dlutter.repo
以下の内容を入力し、ファイルを保存します。
[dlutter] name=Unsupported RHEL5 packages (lutter) baseurl=http://people.redhat.com/dlutter/yum/rhel/5/$basearch/ enabled=0 gpgcheck=0
========================================
2. gemsのインストール
========================================
Ruby の標準パッケージ管理システムであるgemsをインストールします。
# yum –enablerepo=dlutter -y install rubygems.noarch
========================================
3. tmailのインストール
========================================
tmailをインストールします。
# gem install tmail
========================================
4. 日本語メール送信サンプルコード
========================================
tmailを使った日本語メールの送信サンプルコードはこんな感じになります。
#!/usr/bin/ruby require 'rubygems' require 'tmail' require 'net/smtp' require 'kconv' # tmailを使った日本語メール送信クラス class JMail # 初期化処理 def initialize(smtp_server, from_address) @smtp_server = smtp_server @mail = TMail::Mail.new @mail.from = from_address @mail.reply_to = from_address @mail.mime_version = '1.0' @mail.set_content_type 'text', 'plain', {'charset'=>'iso-2022-jp'} end # メール送信 def send(subject, body, to_address) @mail.to = to_address work = Kconv.tojis(subject).split(//,1).pack('m').chomp @mail.subject = "=?ISO-2022-JP?B?"+work.gsub('\n', '')+"?=" @mail.body = Kconv.tojis(body) @mail.date = Time.now @mail.write_back Net::SMTP.start(@smtp_server) do |smtp| smtp.sendmail(@mail.encoded, @mail.from, to_address) end end end SMTP_SERVER = 'localhost' TO_ADDRESS = 'to@address' FROM_ADDRESS = 'from@address' jmail = JMail.new(SMTP_SERVER, FROM_ADDRESS) jmail.send('日本語タイトル', '日本語本文', TO_ADDRESS)