Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使脚本(如“script/mailman_server”)适用于Rails应用程序中的多个用户_Ruby On Rails_Ruby On Rails 3_Mailman_Mailman Gem - Fatal编程技术网

Ruby on rails 如何使脚本(如“script/mailman_server”)适用于Rails应用程序中的多个用户

Ruby on rails 如何使脚本(如“script/mailman_server”)适用于Rails应用程序中的多个用户,ruby-on-rails,ruby-on-rails-3,mailman,mailman-gem,Ruby On Rails,Ruby On Rails 3,Mailman,Mailman Gem,我有一个Rails应用程序,它使用mailman gem收集入站pop3邮件并处理它们。这一切都很好,但现在我希望有多个用户注册并从他们的pop3配置接收邮件。Mailman是在“script/Mailman_server”中运行的,我不知道如何让运行自己流程的脚本为多个用户工作。有没有人能在这个主题上给我一些启发,或者链接到一个涉及这个主题的资源 这是我现在的代码 我认为这在这个gem中是不可能的,除非您从其他邮件帐户转发到配置的邮件帐户,如图所示[.谢谢你的回答。不幸的是,这个解决方案不适合

我有一个Rails应用程序,它使用mailman gem收集入站pop3邮件并处理它们。这一切都很好,但现在我希望有多个用户注册并从他们的pop3配置接收邮件。Mailman是在“script/Mailman_server”中运行的,我不知道如何让运行自己流程的脚本为多个用户工作。有没有人能在这个主题上给我一些启发,或者链接到一个涉及这个主题的资源

这是我现在的代码


我认为这在这个gem中是不可能的,除非您从其他邮件帐户转发到配置的邮件帐户,如图所示[.谢谢你的回答。不幸的是,这个解决方案不适合我的情况。来自每个邮件帐户的邮件不能混合在一起。你有其他解决方案的建议吗?我正在搜索自己。我唯一的想法可能是建立一个标准的imap服务器,如CyrusImap mail,并用作interfa但是你没有一个积分。
# script/mailman_server

#!/usr/bin/env ruby
require "rubygems"
require "bundler/setup"
require "mailman"

Mailman.config.pop3 = {
  :username => 'some_name@some_email.com',
  :password => 'some_password',
  :server   => 'pop.gmail.com',
  :port     => 995,
  :ssl      => true
}

Mailman::Application.run do
  default do
    Email.receive_mail(message)
  end
end


# app/models/email.rb

class Email
  include Mongoid::Document
  include Mongoid::Timestamps

  field :from, type: String
  field :subject, type: String
  field :body, type: String

  belongs_to :customer, :inverse_of => :emails

  def self.receive_mail(message)
    email = Email.create!(subject: message.subject, body: message.body.decoded, from: message.from.first)
  end
end