require ‘action_mailer’とかやってメール送ろうとしたら引っ掛かった

Posted by jolantern on Monday, September 5, 2016

Rubyでメールを送りたかった

別になんてことはなく、開発環境はOSXだし、mailコマンドでためしにメール送ったら送れたので簡単にスクリプト化できるだろうと色々試していた。

erbなテンプレートを扱えたら楽ではないかという考えのもと、Railsに入ってるActionMailerを使えたら…と試してみたらうまくいかなかった。

require 'action_mailer'
class Hoge < ActionMailer::Base
 def hogehoge
  puts "test"
 end
end

とかやると、active support rescuableが出てしまう。

$ruby hoge.rb
$/workspace/hoge/vendor/bundle/ruby/2.3.0/gems/actionmailer-5.0.0.1/lib/action_mailer/rescuable.rb:6:in `<module:Rescuable>&#39;: uninitialized constant ActiveSupport::Rescuable (NameError)

なんぞと思ったらrailsに含まれているパッケージの一部はrequire ‘activesupport’とかやってあげないと使えないらしい。

require &#39;active_support&#39;
require &#39;active_support/core_ext&#39;
require &#39;action_mailer&#39;
class Hoge < ActionMailer::Base

 def hogehoge
  puts "test"
 end
end

これで使えるようになった。