gpt4 book ai didi

ruby-on-rails - 从 Rails 发送 Outlook 日历邀请

转载 作者:行者123 更新时间:2023-12-04 12:47:44 25 4
gpt4 key购买 nike

我正在尝试从我的 Rails 应用程序发送日历邀请。它似乎在 Gmail 中工作正常,但在作为附件发送的 Outlook 中却没有。

我已经尝试了 Internet 上的所有建议,但无法让它发挥作用。

class Notifications < ActionMailer::Base
def add_interaction
@i = i
ical = Icalendar::Calendar.new
e = Icalendar::Event.new
e.start = DateTime.now.utc
e.start.icalendar_tzid="UTC" # set timezone as "UTC"
e.end = (DateTime.now + 1.hour).utc
e.end.icalendar_tzid="UTC"
e.organizer @i.interviewer_email
e.created = DateTime.now
e.uid = e.url = "#{HOSTNAME.to_s+'/interaction/'+@i.id.to_s}"
e.summary "#{INTERACTION_TYPE[@i.itype][0]} with #{@i.company}"
e.description <<-EOF
#{INTERACTION_TYPE[@i.itype][0]} with #{@i.company}
Date: #{@i.start_time.strftime('%e %b %Y')}
Time: #{@i.start_time.strftime('%I:%M %p')}
EOF
ical.add_event(e)
ical.custom_property("METHOD", "REQUEST")

email=mail(to: "sample@email.com", subject: "Interview",mime_version: "1.0", content_type:"text/calendar",body:ical.to_ical,content_disposition:"inline; filename=calendar.ics", filename:'calendar.ics')
email.header=email.header.to_s+'Content-Class:urn: content-classes:calendarmessage'
return email
end
end

它被称为
Notifications.add_interaction(Interaction.last).deliver

我也尝试将邮件构建为
    email=mail(to: "nikhil@talentauction.in,nikhil@zobtree.com", subject: "#{@i.bid.company.name} has suggested a time for #{INTERACTION_TYPE[@i.itype][0]}",mime_version: "1.0", content_type:"multipart/alternative",body:'')
html_body = render_to_string("/notifications/add_interaction")
email.add_part(
Mail::Part.new do
content_type "text/html"
body html_body
end
)
p = Mail::Part.new do
content_type 'text/calendar; method=REQUEST name="calendar.ics"'
content_disposition "inline; filename=calendar.ics"
content_transfer_encoding "8bit"
body ical.to_ical
end
p.header=p.header.to_s+'Content-Class:urn: content-classes:calendarmessage'
email.add_part(p)

但在所有情况下,日历邀请都是作为 Outlook 中的附件提供的。

我注意到一些奇怪的事情,这可能是造成这种情况的原因。当我查看电子邮件的来源时,在这两种情况下,最上面的 mimetype 都是 multipart/mixed , (而不是 text/calendar 第一次和 multipart/alternative 第二次)

而从控制台发送电子邮件时,它说的是
Message-ID: <5332b0db144e8_1a80129d7f866915@skynet.mail>
Subject: Talent Auction has suggested a time for Introduction Call
Mime-Version: 1.0
Content-Type: text/calendar;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename=calendar.ics
filename: calendar.ics
Content-Class: urn: content-classes:calendarmessage

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
CALSCALE:GREGORIAN
PRODID:iCalendar-Ruby
BEGIN:VEVENT
CREATED:20140326T162000
DESCRIPTION: Introduction Call with Talent Auction\n Date: 28 Mar 2014\n
Time: 04:00 PM\n
DTEND:20140327T105000Z
DTSTAMP:20140326T105000Z
DTSTART:20140326T105000Z
CLASS:PUBLIC
ORGANIZER:nikhil@zobtree.com
SEQUENCE:0
SUMMARY:Introduction Call with Talent Auction
UID:localhost:300019
URL:localhost:300019
END:VEVENT
END:VCALENDAR

编辑:我正在使用 mandrill 发送电子邮件,如果这有帮助的话

最佳答案

如果以“正确”的方式附加,公平前景会愉快地接受事件。现在无法模拟您的设置,所以我只能尝试帮助一些猜测..请尝试:

email = mail(to: "sample@email.com", subject: "Interview", mime_version: "1.0", content_type: "text/plain", body: ical.to_ical, content_disposition: "attachment; filename='calendar.ics'")
return email

如果这也失败了,请尝试:
... content_type: "text/calendar" ...

对于您希望的其他方法:
p = Mail::Part.new do
content_type "text/plain; name='calendar.ics'"
content_disposition "attachment; filename='calendar.ics'"
content_transfer_encoding "7bit"
body ical.to_ical
end

如果那也失败了,请尝试
... content_type "text/calendar" ...

反而。

另外,请记住,发送者需要在接收者的地址簿中才能在没有确认的情况下添加事件。此外,在 http://severinghaus.org/projects/icv/ 有一个 ical 验证器.很想得到你的反馈..

关于ruby-on-rails - 从 Rails 发送 Outlook 日历邀请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22659169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com