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

Posted by jolantern on Monday, September 5, 2016

TOC

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

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

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

<code class="ruby">require 'action_mailer'
class Hoge < ActionMailer::Base
 def hogehoge
  puts "test"
 end
end
</code>

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

<code class="shell">$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>': uninitialized constant ActiveSupport::Rescuable (NameError)
</code>

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

<code class="ruby">require 'active_support'
require 'active_support/core_ext'
require 'action_mailer'
class Hoge < ActionMailer::Base

 def hogehoge
  puts "test"
 end
end
</code>

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