如何在 rails 中创建 ICS 并将其作为邮件附件发送?
最佳答案
这可以使用 ri_cal gem 来完成:
为了创建事件 ics 文件,您要创建事件:
event = RiCal.Event do
description "MA-6 First US Manned Spaceflight"
dtstart DateTime.parse("2/20/1962 14:47:39")
dtend DateTime.parse("2/20/1962 19:43:02")
location "Cape Canaveral"
add_attendee "john.glenn@nasa.gov"
alarm do
description "Segment 51"
end
end
然后你使用
.export(stream)
在事件上(这会将事件插入到仅包含此事件的包装日历中,因此您不必自己包装它)。可以将流设置为可以按照 Andy 建议的方式附加的文件,或者您可以在没有流参数的情况下调用此方法,该方法将返回一个可以按原样放入附件的字符串。这看起来像这样:
class UserMailer < ActionMailer::Base
def send_event_email(user, event)
attachments['event.ics'] = event.export()
mail(:to => user.email, :subject => "Calendar event!")
end
end
关于ruby-on-rails - 如何在 rails 中创建 ICS 并将其作为邮件附件发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708056/