mms2r автоматическая загрузка удаленных изображений - PullRequest
0 голосов
/ 30 ноября 2011

Я использую удивительный гем MMS2R (https://github.com/monde/mms2r)), чтобы создать приложение, которое обрабатывает MMS-сообщения, отправленные на адрес электронной почты, храня мультимедийные сообщения (изображения, видео, аудио) локально для моего приложения.

Мой код работает хорошо, когда медиа является настоящим вложением в электронное письмо. Но я столкнулся с проблемой, когда изображения не являются «настоящими» вложениями, а вместо этого они встроены в html сообщения электронной почты и хранятся на удаленном сервере.

Особенности моего снаряжения:

  • Использование mms2r v3.4.1, mail (2.3.0)
  • MMS-сообщение приходит от XXX@pm.sprint.com
  • Я POPing Gmail адрес

Упрощенная версия моего кода выглядит как

msgs = Mail.all
msgs.each do |m|
  mail = MMS2R::Media.new(m)
  puts mail.has_attachments?
  puts mail.media.size
end

Это приводит к следующему выводу для рассматриваемого письма:

> false
> 0

Итак, есть ли что-то особенное, что я должен сделать, чтобы получить доступ к этим удаленным вложениям? У меня сложилось впечатление, что это то, для чего предназначен гем mms2r. Я ошибся? Нужно ли самому извлекать удаленный носитель?

Спасибо!

---- Обновление ----

Проблема, по-видимому, связана с моим использованием ruby ​​1.9.2 и / или версии установленных самоцветов. Теперь сузим его.

---- Обновление 2 ----

Проблема, как оказалось, связана с mms2r и ruby ​​версиями 1.9.x. Monde (ниже) является разработчиком гема mms2r и вскоре постарается исправить ошибку.

1 Ответ

1 голос
/ 01 декабря 2011

Это верно, у Sprint есть служба доставки контента для своих медиа, вместо того, чтобы доставлять полную полезную нагрузку в фактическом теле MMS / почты. Абстракция для этого находится в модуле MMS2R :: Media :: Sprint https://github.com/monde/mms2r/blob/master/lib/mms2r/media/sprint.rb

Образец MMS, с которым вы работаете, старше 30 дней? Я знаю, что у них истекает контент в их CDN, но я не уверен, насколько быстро это происходит. Я хочу сказать, что истекает около тридцати дней или около того.

Обновление - просто дважды проверил мою живую систему, которая потребляет MMS от дикого, я не вижу никаких проблем со Sprint в настоящее время в моей системе.

Update2 - это была проблема в Ruby 1.9.X при извлечении контента из CDN Sprint, это было исправлено в выпуске MMS2R 3.5.0

...