Mail というライブラリを利用することで、Rubyでのメール作成および送信が簡単に行えます。これはRailsをインストールしていれば既にインストールされているかもしれませんが、なければgemでインストールします。
$ gem install mail
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require 'mail'
# ==============================
# メールを作成
# ==============================
mail = Mail.new
mail.charset = 'UTF-8'
# ヘッダ情報
mail.from = 'qoosky@example.com'
mail.to = 'qoosky@example.com'
mail.subject = 'テストめーるです!'
# mail[""]で任意のヘッダを指定可能 (Bccを除く)
mail["Cc"] = 'qoosky@example.com' #mail.cc で指定することもできます
mail["Bcc"] = 'qoosky@example.com' #Bccを指定しても無視されるようです
# 本文情報
mail.body = <<"EOS"
このメールは、
#{Time.now} に送信されました。
EOS
# ファイルを添付
mail.add_file(filename: "Rubyサンプルプログラム.rb", content: File.binread('./sample.rb'))
# または:
# mail.add_file(filename: "Rubyサンプルプログラム-1.rb", content: File.read('./sample.rb', encoding: 'UTF-8'))
mail.add_file(filename: "画像.png", content: File.binread('./sample.png'))
# ==============================
# メールを保存
# ==============================
File.open("sample.eml",'w'){|f|
f.puts mail.to_s.gsub("\r\n","\n")
}
# ==============================
# 保存しておいたメールを読み込み
# ==============================
savedMail = Mail.read './sample.eml'
# ==============================
# メール送信
# ==============================
savedMail.delivery_method(:smtp, address:'localhost', port:25)
savedMail.deliver