Вложения Rails 3 ActionMailer некорректно отображаются встроенными в Yahoo!почта - PullRequest
1 голос
/ 21 февраля 2011

Я использую ri_cal gem для создания файла ics.

В моем почтовике: -

def appointment_book(appointment,recipient,appointment_with)
  event = RiCal.Event do
    description "MA-6 First US Manned Spaceflight"
    dtstart     DateTime.parse(appointment.slot.date_on.strftime("%m/%d/%Y").to_s + " " + appointment.slot.start_time.strftime("%I.%M %p").to_s)
    dtend       DateTime.parse(appointment.slot.date_on.strftime("%m/%d/%Y").to_s + " " + appointment.slot.end_time.strftime("%I.%M %p").to_s)
    add_attendee appointment_with.full_name
    alarm do
      description "Segment 51"
    end
  end
  attachments['event.ics'] = { 
   :mime_type => 'text/calendar', 
   :content => event.export 
   }

  @recipient = recipient
  @appointment = appointment
  mail(:to => recipient.email, :subject => "Appointment book")
end

в файле appintment_book.text.erb

  (some simple variable values or plain text.)

Проблема: (В Yahoo, более новая версия. Я добавляю скриншоты в часть редактирования): -

вложение есть почта, но кроме содержимого почты в gmail есть некоторый vcard и другой контент. Если я удаляю код ics_generation, то его нет. Пожалуйста, проверьте скриншоты

В Gmail это выглядит так (также работает на Hotmail): -

gmaill look

EDIT

Работа в Yahoo Classic.

Working in yahoo classic

Не работает в Нью-Йорке: -

enter image description here

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Эта проблема связана только с Yahoo! Почта. Какой позор, что Yahoo! Mail не управляет событиями iCalendar в Yahoo! Календарь еще в 2011 году!

По крайней мере, события теперь предоставляются в виде вложений ICS в "новом" Yahoo! Почта и вы можете управлять приглашениями вручную. Может быть, Yahoo! Классика делала в прошлом. Я проверю и рассмотрю возможность возврата.

Это единственное решение для людей, продолжающих использовать Yahoo! Сервис веб-почты. Конечно, с Yahoo! Учетная запись электронной почты, управляемая почтовым клиентом POP3, правильно управляет событиями iCalendars: любой прикрепленный ICS-файл отображается как приглашение на собрание, которым вы можете управлять через почтовый клиент, как обычно.

Посмотрите здесь, на Yahoo! Сеть разработчиков: http://developer.yahoo.com/forum/General-Discussion-at-YDN/Problem-opening-ICS-files-from-Yahoo/1299668671000-24ed7a59-019f-3f1b-b596-70ab34db783c

Надеюсь, это поможет, так поздно.

1 голос
/ 27 февраля 2011

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

 attachments['event.ics'] = { 
   :mime_type => 'text/calendar', 
   :content => event.export 
 }

Я не могу сказать, поможет ли это тому почтовому клиенту и / или календарным данным, но это помогает большинству клиентов использовать вложения vCard, например:

 attachments['card.vcs'] = { 
   :mime_type => 'text/x-vcard', 
   :content => person.to_vcf 
 }

Спасибо заУточнение, к сожалению, для этого вопроса У меня нет ответа лучше, чем «Рассказать Yahoo», что не поможет.

Я отправил вложения на почту Yahoo из нескольких разных источников, и я попробовал разныетипы контента, кодировки передачи (например, Base64), различные виды вложений и т. д. Единственная постоянная, которую я могу найти между теми, которые Yahoo показывает правильно, и теми, на которых он терпит неудачу, состоит в том, что успехи не используют свертывание параметровНапример,

Успех

Content-Disposition: attachment; filename="event.ics"

Fail

Content-Disposition: attachment;
 filename="event.ics"

Это (правильное) сворачивание выглядит жесткокрасный в mail gem , который использует Rails, и я не пытался по-другому изолировать его;Я должен сказать, что был бы удивлен, если бы это действительно было проблемой.

Несмотря на это, Yahoo отображает не встроенные вложения как встроенные, поэтому, если это серьезная проблема для вашей клиентской базы, я бы взялэто с Yahoo напрямую;может быть, они исправят это или предложат вам более конкретное заявление о том, что его вызывает, чтобы вы могли обойти это.Для чего бы это ни стоило, Yahoo действительно позволяет пользователю правильно обращаться к вложениям, как это должно быть с Content-Disposition «вложение»;это просто также , показывающее это так, как если бы Disposition был «встроенным».

Кстати, эта проблема затрагивает и мои приложения, поэтому я буду продолжать думать о том, что мы можем попробовать,

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