2

我已经为我的 rails 应用程序构建了一个非常基本的 CRM 系统,它允许我发送带有自定义文本的每周用户活动摘要,并创建可以通过基本管理界面配置和发送的多部分营销消息。我对我在发送端汇总的内容感到满意(减去我没有尝试对其功能进行批量测试的事实),但我担心如何处理反弹。

我遇到了这个带有相关脚本的插件:http: //github.com/kovyrin/bounces-handler

我正在使用 Google Apps 来处理我的邮件,但我对 Perl 的了解还不够,不想弄乱上面的插件——我已经够头疼了。

我正在寻找一个简单的解决方案来处理 Rails 中的反弹。我所有的电子邮件都将从这样的地址发出,该地址将在 Google Apps 中进行管理:“news@mydomain.com”。

最好的工作流程是什么?任何人都可以发布他们正在使用的示例解决方案,记住我正在使用 Google Apps 发送邮件这一事实吗?

任何指导、链接或处理此问题的基本工作流最佳实践将不胜感激。

谢谢!-一个

4

1 回答 1

2

好的,事实证明这比我认为使用可以在 Github 上找到的 Fetcher 插件更容易。对于那些对似乎可行的方法感兴趣的人,这是我所做的:

1)像这样安装Fetcher插件: script/plugin install git://github.com/look/fetcher.git

2) 说明建议您运行生成器来创建守护进程,如下所示:脚本/生成 fetcher_daemon MailerDaemon。我建议这样做,因为它会在 config/ 中生成一个 YML 文件,您可以使用您的邮件服务器信息(在我的情况下为 Gmail)进行修改。

它还生成一个守护进程来运行 Fetcher。我尝试使用它,但始终出现以下错误: Mysql::Error: MySQL server has gone away: SHOW FIELDS FROM email_blacklists。这是在 MySQL 可以存储记录之前守护进程消失的结果,所以我放弃了使用守护进程并设置了一个 cron。

3) 在配置中配置 .yml 文件,我使用您的邮件设置将其重命名为 mail.yml。对于 gmail pop,它们看起来像这样:

development:
  type: pop
  server: pop.gmail.com
  port: 995
  ssl: true
  username: myemailaddress@gmail.com
  password: mypassword

这是您需要处理的代码:

模型/mail_processor.rb

class MailProcessor < ActionMailer::Base
  def receive(email)
    email = EmailBlacklist.find_or_create_by_email(email.to.first)

  end
  def self.grab_bounces
    config = YAML.load_file("#{RAILS_ROOT}/config/mail.yml")
    config = config[RAILS_ENV].to_options
    fetcher = Fetcher.create({:receiver => MailProcessor}.merge(config))
    fetcher.fetch
  end
end

lib/tasks/mail.rake

namespace :email do
  desc "sends various types of marketing and automated emails and processes bouncebacks"
  task(:process_bounces => :environment) do
    MailProcessor.grab_bounces
  end
end

然后,您可以将自动生成的 mailer_daemon_fetcher.rb 文件扔到您的 scripts/ 目录中。

希望这对其他人有帮助。如果您想进行测试,只需从控制台调用 MailProcessor.grab_bounces。确保您的收件箱中有一些您配置为可以访问的电子邮件。

于 2010-05-16T16:40:45.043 回答