monolithic kernel

RubyでGmailを利用したメール送信

GmailのSMTPを利用してメール送信するためにTLSが必要ですが、Ruby 1.8系列では標準で利用できません。以下にRuby 1.8系列でTLSを利用するための方法をメモしておきます。

tlsmailというライブラリを利用するので、あらかじめインストールしておく必要があります。

sudo gem install tlsmail

ライブラリがインストールされた状態で以下のように記述すればGmailを利用したメール送信が可能です。

require 'rubygems'
require 'net/smtp'
require 'openssl'
require 'tlsmail'

host = 'smtp.gmail.com'
port = 587
helo = 'gmail.com'
user = '[email protected]'
password = 'password'

Net::SMTP.enable_tls OpenSSL::SSL::VERIFY_NONE

Net::SMTP.start(host, port, helo, user, password, :plain) do |smtp|
  # メール送信
end

ちなみに、Gmailでは拡張子が.exe、.zip、.tar、.tgz、.z、.gzのファイルを添付ファイルとして送信することはできません。downloaderでは、この問題に対してファイル名の末尾に_(アンダーバー)を付加することで強引に対処しています。