Rails / Heroku: как разрешить нашим пользователям отправлять фотографии по электронной почте на их учетную запись в нашем приложении? - PullRequest
1 голос
/ 13 октября 2011

Мне нужно дать пользователям возможность отправлять фотографии (или видео) на свой аккаунт в нашем приложении rails 3, которое работает на Heroku.

Поскольку мы находимся на Heroku (нет локального хранилища),фотография (или видео) должна быть сохранена в нашей учетной записи S3.И, конечно, мы должны иметь возможность поддерживать уникальный личный адрес для каждого пользователя, чтобы мы знали, для какого аккаунта нужна входящая фотография.

Будем благодарны за любые предложения!Я смотрел на аддон CloudMailIn для Heroku, но они просто дают один адрес электронной почты, поэтому не уверены, как дать каждому из наших пользователей свой уникальный почтовый адрес.

Ответы [ 2 ]

3 голосов
/ 14 октября 2011

Используйте cloudmailin - он идеально подходит именно для того, что вы хотите.

Вы уже знаете адрес электронной почты своих пользователей, поэтому, если они отправляют электронное письмо по адресу uploads@yourcompany.com, тогда адрес «от» идентифицирует пользователя, чтобы вы знали, кто его отправил, и нет необходимости каждый раз давать ему специальный адрес электронной почты. - плюс вы можете отклонить его, если электронное письмо получено от кого-то, кого вы не узнаете.

Cloudmailin обрабатывает все аспекты, связанные с электронной почтой, и все, что касается smtp, а затем просто делает «публикацию» в ваше приложение, передавая (в адрес электронной почты, который вы указали) в сообщении и т. Д. В некоторых планах вы можете даже включить cloudmailin вложения прямо на S3 для вас

1 голос
/ 13 октября 2011

Просто идея

  • используйте приложения Google (когда вы управляете своим собственным доменным именем, кстати, неплохо было бы использовать отдельное доменное имя для загрузки по электронной почте) или вашего собственного провайдера, если у вас большие почтовые ящики + перехватить поддержку всех адресов.
  • перехватить всю учетную запись, т.е. uploads@uploads-company.com, которая будет получать почту от всех пользователей
  • используйте user-email-token@uploads-company.com, где user-email-token является уникальной и трудно угадываемой (пользователь получает это путем посещения страницы его / ее учетной записи) вещью, которая связывает это электронная почта для пользователя в вашей системе

Основы реализации

  • пользователь отправляет письмо на специальный адрес электронной почты
  • Пользователь, который умеет читать электронные письма (периодически, imap / pop), извлекать вложения и загружать их в Amazon S3 +, знает, какой токен электронной почты принадлежит какому пользователю
  • используйте delayed_job, чтобы позаботиться о процессе (http://devcenter.heroku.com/articles/delayed-job)
  • может использовать папку / app / tmp на heroku в качестве временного хранилища перед загрузкой на S3 (размер ограничен, может не работать для больших видео)
...