2008年5月24日土曜日

SMTP@Gmail

rubyからGmailを操作できるgmailerというライブラリが使えなくなった
Gmailがバージョンアップしたための模様

メールの自動送信ができなくなったので他の方法
セキュアなSMTPでGmailよりメール送信する
既にtlsmailと言うライブラリが公開されているのでrubygemsでインストールする
sudo gem install tlsmail

さらにそれをラップするメソッドを作った

require 'rubygems'
require 'tlsmail'
require 'time'

module Gmail
def Gmail.get_content(from_address, to_address, subject=nil, body=nil)
content = ""
content << "From: #{from_address}\n"
content << "To: #{to_address}\n"
content << "Subject: #{subject}\n"
content << "Date: #{Time.now.rfc2822}\n\n"
content << "#{body}\n"
return content
end

def Gmail.send(user, pass, from_address, to_address, subject=nil, body=nil)
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com', user, pass, :login) { |smtp|
smtp.send_message(get_content(from_address, to_address, subject, body), \
from_address, to_address)
}
end
end

if __FILE__ == $0
Gmail.send("Gmailのアカウント", "パスワード", "送信元アドレス", "送信先アドレス", "sub", "test")
end


デメリットは、httpでないため会社では使えないことくらいかな
gmailerは良かった

0 件のコメント:

干し芋のリスト