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 で 1 つのアカウントを作成しましたが、受信メールを処理するにはそれで十分ですか、それともアプリケーションにメールを受信するために他の手順に従う必要がありますか? つまり、サーバー設定を行う必要があります。私は何でも得ています。助けてください。
現在、次のようなメールを送信しています。
mail(:to => @user.email, :subject => "Edit Your Product")
そして私はデフォルトとしてfromを設定しました。それは次のようになります:
default from: "abc@xyz.com"
これは管理者の電子メール アドレスです。私を助けてください。