rubyでgmail送信を行うにはtlsmailを使うのが楽です。
# -*- coding: utf-8 -*-
require "rubygems"
require "tlsmail"
require "time"
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start("smtp.gmail.com", "587", "localhost", "Gmailアカウント", "パスワード", :plain) do |smtp|
smtp.send_message msg, "送信元アドレス", "送信先アドレス"
end
メッセージの中身(msg)は下記のように指定
msg =<<EOF
From: xxx@gmail.com
To: xxx@xxx.jp
Subject: TEST
Date: #{Time.now.rfc2822}
TEST
\r\n
EOF
ちなみに
コマンド文字列および正規表現の中では#{式}という形式で式の内容(を文字列化したもの)を埋め込むことができます。
http://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.bc.b0.c5.b8.b3.ab
($ruby = "RUBY"の場合)
"my name is #{$ruby}" #=> "my name is RUBY"
#{Time.now.rfc2822}の部分ね。
2月2日 追記
ちなみに本文になにか変数を入れたい場合tmailを使う方法もある。
tmailはメールの箱だけ用意するってイメージで、その場合は下記のとおり。
require 'tmail'
require "tlsmail"
# tmailでメールを作成
mail = TMail::Mail.new
mail.to = ''
mail.from = ''
mail.subject =
mail.date = Time.now
mail.mime_version = '1.0'
mail.set_content_type 'text', 'plain', {'charset'=>'utf-8'}
mail.body = result.items
# メールはNet::SMTPで送信。
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start( "smtp.gmail.com", 587, "localhost.localdomain", "", "", "plain"){ |smtp|
smtp.sendmail(mail.encoded, mail.from, mail.to)