Rubyでメール作成および送信を行うためのサンプルプログラム
[履歴] (2014/02/02 23:46:16)
最近の投稿
注目の記事

概要

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
関連ページ
    概要 外部の SMTP サーバを直接指定して利用するスクリプト Rubyでメール作成および送信を行うためのサンプルプログラム メール送信の方法 (Rails4/ActionMailer) の場合は気になりませんが、無指定の場合や mail コマンドなどは、ローカルホストの SMTP サービスを利用しようとします。そのような場合のために、SMTP サービスの Postfix デーモンをロー