我正在努力弄清楚如何最好地连接/线程化一系列电子邮件.这似乎是一个常见的问题,我很惊讶我无法轻易找到其他人如何处理它的信息.我发现的唯一一件事是关于JWZ线程的帖子,它更关注在一封电子邮件中解析一个线程.我想知道是否有人能指出我当前的一些解决方案.
我正在使用thinkbot griddler gem来处理传入的电子邮件到模型Message(s)和单独的模型Contact(s),我有第三个用于存储回复的模型,例如Reply.
我目前的想法是通过独特的联系方式和主题来描述它们.但话题再次略有改变.例如来自"这个主题" - >"Re:re:这个主题"我可以使用正则表达式尝试解析"re:"s或者我可以使用类似amatch的东西进行字符串比较?
但话又说回来,2个月后为同一个用户出现的同一主题该怎么办?还添加一些关于当前日期的逻辑,以便线程仅使用最近的电子邮件.那么电子邮件标题本身可能还有其他有用的内容吗?
我粗略地想知道如何做到这一点,我只是好奇地看到一些当前的实现,我似乎无法找到任何.
任何指针将不胜感激!
email ruby-on-rails email-threading ruby-on-rails-4 griddler
我正在使用Sendgrid Parse API和Griddler gem接收传入的电子邮件.在大多数情况下,这很好用; 但是,如果您没有使用状态代码200响应Sendgrid,他们将认为应用程序没有正确接收POST请求并继续尝试发布3天的POST.我正在尝试回复状态代码并遇到问题.
在常规RESTful路由中,您可以执行类似...
render :status => 200
Run Code Online (Sandbox Code Playgroud)
但是,我相信这必须在控制器中完成以识别渲染方法.Griddler建议您创建一个EmailProcessor模型并使用"进程"方法来处理电子邮件.
据我所知,你不能在模型中使用render方法.因此,我使用类方法创建了一个EmailProcessorsController类,如下所示.
class EmailProcessor < ActiveRecord::Base
include ApplicationHelper
def initialize(email)
@email = email
@to = email.to # this is an array
@from = email.from
end
def process
# do other stuff
EmailProcessorsController.render_ok
end
end
class EmailProcessorsController < ActionController::Base
def self.render_ok
render :status => 200
end
end
Run Code Online (Sandbox Code Playgroud)
以下是我从我的应用程序获得的错误.它不喜欢渲染方法:(
NoMethodError (undefined method `render' for EmailProcessorsController:Class):
app/controllers/email_processors_controller.rb:6:in `render_ok'
app/models/email_processor.rb:16:in `process'
Run Code Online (Sandbox Code Playgroud)
我是一个新的开发者,这可能是简单的东西,但我被卡住了.任何关于问题和设计的想法和评论都非常感谢.谢谢!
UPDATE!
根据@meagar的建议,我将渲染调用移动到控制器,如下所示,但现在我得到了一个不同的错误,我不知道该怎么做.
class EmailProcessorsController < ApplicationController
def initialize(email)
@email = email
@to …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚为什么传入的电子邮件在我的Ruby on Rails应用程序中使用Griddler和SendGrid删除了段落.为此,我想使用Postman模拟入站电子邮件.
SendGrid有一个示例'Default Payload',如下所示:
[Date] array(16) {
["headers"]=>
string(1970) "Received: by mx0047p1mdw1.sendgrid.net with SMTP id 6WCVv7KAWn Wed, 27 Jul 2016 20:53:06 +0000 (UTC)
Received: from mail-io0-f169.google.com (mail-io0-f169.google.com [209.85.223.169]) by mx0047p1mdw1.sendgrid.net (Postfix) with ESMTPS id AA9FFA817F2 for <parse@parse.yourdomain.com>; Wed, 27 Jul 2016 20:53:06 +0000 (UTC)
Received: by mail-io0-f169.google.com with SMTP id b62so81593819iod.3 for <parse@parse.yourdomain.com>; Wed, 27 Jul 2016 13:53:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.com; s=ga1; h=mime-version:from:date:message-id:subject:to; bh=DpB1CYYeumytcPF3q0Upvx3Sq/oF4ZblEwnuVzFwqGI=; b=GH5YTxjt6r4HoTa+94w6ZGQszFQSgegF+Jlv69YV76OLycJI4Gxdwfh6Wlqfez5yID 5dsWuqaVJZQyMq/Dy/c2gHSqVo60BKG56YrynYeSrMPy8abE/6/muPilYxDoPoEyIr/c UXH5rhOKjmJ7nICKu1o99Tfl0cXyCskE7ERW0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用rails应用程序中的'griddler'gem实现sendgrid解析API.问题是如何在本地测试?以及如何在我的本地计算机上接收电子邮件.