なにかのアイデアを忘れないように、アイデアは思いついたときにgmailや会社のメールのInboxへリマインダメールを放り込む習慣がある。
コマンドラインからサクッとメールを送信するスクリプトを作成しました。
以下の記事を参考にしました。ありがとうございます。
事前準備として、以下をインストールする必要があります。
gem install mail
gem install tlsmail
Warningエラーがたくさんでるので、対策が必要。これはgmailが原因のようだ。
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant Net::SMTPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/2.1.0/net/smtp.rb:1063: warning: previous definition of SMTPSession was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: already initialized constant Net::POP
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: previous definition of POP was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: already initialized constant Net::POPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: previous definition of POPSession was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: already initialized constant Net::POP3Session
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: previous definition of POP3Session was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant Net::APOPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: previous definition of APOPSession was here
以下のサイトを参考に対策を実施。
-
ruby on rails – warning: already initialized constant after installing tlsmail gem? – Stack Overflow
require 'net/smtp' Net.instance_eval {remove_const :SMTPSession} if defined?(Net::SMTPSession) require 'net/pop' Net::POP.instance_eval {remove_const :Revision} if defined?(Net::POP::Revision) Net.instance_eval {remove_const :POP} if defined?(Net::POP) Net.instance_eval {remove_const :POPSession} if defined?(Net::POPSession) Net.instance_eval {remove_const :POP3Session} if defined?(Net::POP3Session) Net.instance_eval {remove_const :APOPSession} if defined?(Net::APOPSession) require 'tlsmail'
スクリプトは以下のとおりです。