如何处理传入的电子邮件并将其更新到rails 3上的ruby中的数据库表中

时间:2012-01-26 03:56:45

标签: ruby-on-rails-3 incoming-mail cloudmailin

我正在尝试设置我的RoR 3应用程序来接收电子邮件,然后处理这些电子邮件并将其更新到名为product_comments的数据库表中。

在我的应用程序中,我有products_controller。管理员可以批准或拒绝这些产品。当管理员拒登该产品时,管理员会添加评论,该评论将邮寄给艺术家,如果艺术家回复该邮件,则应更新product_comments表以存储回复的评论和回复日期。

以下是我的产品控制器中的(部分)内容:

if @productcomment.save
ArtistProduct.where(:id=>params[:id]).update_all(:astatus=>'disapproved', :status=>'disapproved')
UserMailer.comment_email( @productcomment).deliver
end

当用户添加评论时,管理员会收到一封电子邮件。当管理员添加评论时,用户会收到一封电子邮件。 (这已经在运作了。)

我正在使用Cloudmailin来帮助我接收收到的邮件。我已将Cloudmailin地址设置为指向http://myapp.com/incoming

我没有得到如何将Cloudmailin集成到我的应用程序中。请帮帮我。

更新

我刚刚创建了传入的控制器,我的传入控制器看起来像:

require 'mail'
def create
@comment = ProductComment.find_by_token(params[:to].split('@')[0])
ProductComment.update(:id=>@comment.id,{:reply => params[:plain], :rfrom=>params[:from], :replieddate=>params[:date]})
render :text => 'success', :status => 200
end

我的问题是我将如何获得评论ID?发送电子邮件时我想指定评论ID吗?如果要指定我想指定的id。我在Cloudmailin中创建了一个帐户,足以处理收到的邮件,或者我需要按照任何其他步骤接收邮件到我的应用程序?这应该是任何服务器设置或什么。我收到任何东西。请帮忙。

现在发送的电子邮件如下:

mail(:to => @user.email, :subject => "Edit Your Product")

和我已将from设置为默认值,它看起来像:

default from: "abc@xyz.com"

这是管理员电子邮件地址。 请帮帮我。

1 个答案:

答案 0 :(得分:1)

您可以使用mailman

user guide有一个例子可以满足您的要求。