2012-01-26 5 views
-1

Я пытаюсь настроить приложение RoR 3 для получения электронной почты, а затем обрабатывать эти письма и обновлять их в таблице базы данных, называемой product_comments.как обрабатывать входящие письма и обновлять их в таблице базы данных в ruby ​​on rails 3

В моем приложении у меня есть product_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 в мое приложение. Пожалуйста, помогите мне.

UPDATE

Я только что создал входящий контроллер и мой входящий контроллер выглядит следующим образом:

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 

Мой вопрос, как я буду получать идентификатор комментария? При отправке электронной почты я хочу указать идентификатор комментария или нет? если хотите указать этот идентификатор, где я хочу указать. Я создал одну учетную запись в Cloudmailin, это достаточно для обработки входящей почты или мне нужно выполнить любые другие шаги для получения почты в моем приложении? то есть любая настройка сервера должна быть выполнена или что. Я получаю что-нибудь. Пожалуйста помоги.

Теперь я отправка по электронной почте, как:

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

и я поставил от по умолчанию, и это выглядит следующим образом:

default from: "[email protected]" 

Это админ адрес электронной почты. Пожалуйста, помогите мне.

+0

Итак, если этот адрес электронной почты получает электронное письмо, на адрес http://myapp.com/incoming должен быть отправлен запрос POST. В чем проблема? –

+0

Можете ли вы использовать одноразовую функцию CloudMailin? таким образом вы можете передать [email protected] в качестве входящего адреса электронной почты? Тогда идентификатор комментария может поступать из параметров [: одноразовый]. Итак, [email protected] приведет к обнаружению комментария id 123? –

ответ

1

Вы можете использовать mailman.

user guide имеет пример, который делает то, о чем вы просите.

+0

, как отправить электронное письмо, если мы используем mailman. где установить идентификатор комментария. пожалуйста скажи мне. – user1074042