[前][次][番号順一覧][スレッド一覧]

rails:883

From: "N.T." <fwkz0826@m...>
Date: Thu, 19 Jan 2006 01:10:44 +0900
Subject: [rails:883] ActionMailer(receive)の使い方について

はじめまして、N.T.と申します。

ActionMailerを使って、メールを受信して Mysqlの
データベースに落とすプロセスを考えておりますが、
最初からつまずいております。

http://wiki.rubyonrails.com/rails/pages/HowToReceiveEmailsWithActionMailer

上記のページを参考にしてメール受信のコードを書いて
実際に動かしてみようと思っているのですが、以下のよ
うなエラーとなり、原因が分からず先に進めなくなって
しまいました。

まず、以下のようなコマンドを実行すると、

%> cat mail.txt | ./script/runner 'SupportMail.receive(STDIN.read)'

         ** mail.txt は、メール1通分の(To/From/Subject等が
            入った)ファイルです。

以下のようなメッセージが出てしまいます。

/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/commands/runner.rb:27: /usr/
lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/depen
dencies.rb:200:in `const_missing': uninitialized constant Page
(NameError)
        from script/../config/../app/models/support_mail.rb:3:in `receive'
        from /usr/lib/ruby/gems/1.8/gems/actionmailer-1.1.5/lib/action_mailer/base.rb:244:in `receive'
        from (eval):1
        from /usr/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in `eval'
        from /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/commands/runner.rb:27
        from /usr/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
        from /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:214:in `require'
        from ./script/runner:3

順を追って説明いたします。

http://wiki.rubyonrails.com/rails/pages/HowToReceiveEmailsWithActionMailer

に書かれていることを元にして以下の手順でクラス定義
をしました。

%> ruby ./script/generate mailer supportMail

を実行して、./app/models/support_mail.rb の中を以下の
ように書きました。

class SupportMail < ActionMailer::Base
    def receive(email)
      page = Page.find_by_address(email.to.first)
      page.emails.create(
        :subject => email.subject,
        :body => email.body
      )

      if email.has_attachments?
        for attachment in email.attachments
          page.attachments.create({
            :file => attachment,
            :description => email.subject
          })
        end
      end
    end
end

これを実行すると、冒頭のエラーとなってしまいます。
何分、初心者なので何が悪いのか検討もつかない状態で困っております。
何かヒントになるようなアドバイスを頂けると助かります。

使用環境は、以下のとおりです。

   OS: FedoraCore3
Rails: Rails 1.0.0
 Ruby: 1.8.4 (2005-12-24) [i386-linux]

以上、よろしくお願いいたします。
-- 
N.T <fwkz0826@m...>


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->     883 2006-01-18 17:10 [fwkz0826@m...       ] ActionMailer(receive)の使い方について   
       884 2006-01-19 06:34 ┗[moriq@m...          ]                                       
       885 2006-01-19 06:43  ┣[moriq@m...          ]                                     
       892 2006-01-19 07:15  ┗[moriq@m...          ]                                     
       896 2006-01-20 00:45   ┗[fwkz0826@m...       ]