Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 在Rails中处理电子邮件回跳_Ruby On Rails_Email_Bouncedemail - Fatal编程技术网

Ruby on rails 在Rails中处理电子邮件回跳

Ruby on rails 在Rails中处理电子邮件回跳,ruby-on-rails,email,bouncedemail,Ruby On Rails,Email,Bouncedemail,我已经为我的rails应用程序构建了一个非常基本的CRM系统,它允许我发送带有自定义文本的每周用户活动摘要,并创建多部分营销消息,我可以通过基本的管理界面进行配置和发送。我对自己在发送端所做的工作感到满意(除了我没有尝试对其功能进行批量测试这一事实),但我关心的是如何处理反弹 我偶然发现了这个插件及其相关脚本: 我正在使用谷歌应用程序来处理我的邮件,但我对Perl的了解还不够,不想把上面的插件搞乱——我已经够头疼的了 我正在寻找一个简单的解决方案来处理Rails中的反弹。我所有的电子邮件都将从这

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

我偶然发现了这个插件及其相关脚本:

我正在使用谷歌应用程序来处理我的邮件,但我对Perl的了解还不够,不想把上面的插件搞乱——我已经够头疼的了

我正在寻找一个简单的解决方案来处理Rails中的反弹。我所有的电子邮件都将从这样一个地址发出,该地址将在谷歌应用程序中管理:news@mydomain.com."

这方面最好的工作流程是什么?任何人都可以发布他们正在使用的示例解决方案吗?请记住,我正在使用谷歌应用程序处理邮件

任何指导、链接或基本工作流最佳实践都将不胜感激

谢谢!
-一个

好的,事实证明,使用Github上的Fetcher插件比我想象的更容易。对于那些对一种似乎有效的方法感兴趣的人,以下是我所做的:

1) 安装Fetcher插件,如下所示:script/plugin Installgit://github.com/look/fetcher.git

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

它还生成一个守护进程来运行Fetcher。我尝试过使用它,但始终出现以下错误:Mysql::错误:Mysql服务器已消失:显示
电子邮件\u黑名单中的字段。这是守护进程在MySQL存储记录之前消失的结果,因此我放弃了使用守护进程,而是设置了一个cron

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

development:
  type: pop
  server: pop.gmail.com
  port: 995
  ssl: true
  username: myemailaddress@gmail.com
  password: mypassword
以下是您需要处理的代码:

型号/邮件处理器.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
然后可以将自动生成的mailer\u daemon\u fetcher.rb文件放入脚本/目录中


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

顺便说一句,非企业级google邮件每天限500封感谢Sam,希望这不会成为问题。
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