Рекомендации по обработке электронной почты, отправленной на конкретный адрес приложения в rails? - PullRequest
2 голосов
/ 02 мая 2009

Мы хотели бы реализовать функцию, с помощью которой пользователи могли бы отправлять электронную почту на определенный адрес приложения, и мы будем анализировать сообщение и предпринимать с ним определенные действия, аналогично рюкзаку 37signals (и, возможно, некоторым другим их приложениям).

Если кто-то сделал что-то подобное, не могли бы вы рассказать мне, как вы это сделали? Я не уверен, как на высоком уровне «импортировать» электронную почту в приложение, чтобы я мог ее обработать.

Спасибо.

Ответы [ 4 ]

1 голос
/ 03 мая 2009

Я недавно реализовал эту точную функциональность в рельсах. Я бы посоветовал вам посмотреть «Надежное получение электронной почты через POP или IMAP» в книге Advanced Rails Recipes .

Я лично нашел, что лучший источник для этого и объясняет, как это сделать лучше, чем я могу. Удачи, какой бы путь вы ни выбрали для этого:)

1 голос
/ 03 мая 2009

Вот как я могу получить POP-сервер:

require 'net/pop'

pop = Net::POP3.new('mail.yourdomain.com')
pop.start(account, password)
pop.each_mail do |m|
  email = TMail::Mail.parse(m.pop)
  email.base64_decode
  OttoMailer.process_email_in(email, m.unique_id)
  m.delete
end 
pop.finish
0 голосов
/ 03 мая 2009

ActionMailer может получать электронные письма , а также отправлять их! Я не помню, как это делается, но если вы посмотрите документацию, то сможете увидеть ее там. Но из памяти электронная почта передается через procmail в сценарий в каталоге сценариев.

Кажется, есть книга по этому вопросу .

Удачи! :)

0 голосов
/ 02 мая 2009

Почему бы не запустить Ruby SMTP mailserver , который будет получать почту через порт 25, а затем вы сможете анализировать / интерпретировать и т. Д., Как хотите?

(я говорю Ruby, так как именно так вы отметили свой вопрос)

Альтернативное решение - запустить procmail (или аналогичный), сопоставить шаблон по теме, а затем вызвать сценарии (настроенные в файле .procmailrc). Однако это может не очень хорошо масштабироваться для больших объемов почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...