我在使用 Amazon SES 服务时遇到附件错误。正常pdf
或jpg
文件正确附加。但是当我附加.ics
一个日历文件时。我得到了这个错误。
554 Transaction failed: Illegal filename 'file_name.ics'
我正在使用aws-ses
宝石rails 3.2.2
亚马逊有什么限制吗?我们如何要求他们允许这种 mime 类型进入我们的帐户?
我在使用 Amazon SES 服务时遇到附件错误。正常pdf
或jpg
文件正确附加。但是当我附加.ics
一个日历文件时。我得到了这个错误。
554 Transaction failed: Illegal filename 'file_name.ics'
我正在使用aws-ses
宝石rails 3.2.2
亚马逊有什么限制吗?我们如何要求他们允许这种 mime 类型进入我们的帐户?
实际问题是电子邮件具有内容类型multipart/mixed
,而包含ics
文件的部分具有内容类型text/plain
,根据Amazon MIME 类型,text/plain
必须具有扩展名txt, diff, text
。但就我而言,它正在.ics
扩展。
所以我必须从这里更改代码。
attachments["file_name.ics"] = @model.to_ical
对此。
attachments["file_name.ics"] = {:mime_type => 'text/calendar',
:content => @model.to_ical}
它解决了我的问题。
虽然Amazon SES确实不接受所有 MIME 类型,但根据其各自的附录:MIME 类型正确支持内容类型 text/calendar
和扩展 。ics
在不查看其来源的情况下,我怀疑这最终是aws-ses gem 的限制(SES 支持的 MIME 类型列表随着时间的推移而增加)并建议您提供官方AWS SDK for Ruby (AWS Ruby Gem)取而代之的是,它现在应该为所有已经支持的 AWS 服务提供更一致和适当维护的开发/使用体验。
祝你好运!