好的。我以为这个问题与我的 Rails 应用有关,但它似乎与邮件附件的更深层机制有关。
我需要从我的 Rails 应用程序发送一个 CSV 文件到一个仓库,该仓库履行我商店中下的订单。该仓库具有 CSV 的格式,讽刺的是 CSV 文件的标题行超长(1000+个字符)。
当我收到测试电子邮件并无法弄清楚是什么导致标题行中出现换行符时,我一直在猜测这是否与我的 Rails 应用有关。然而,一些搜索终于显示了原因:附加文件具有 1000 个字符的行字符限制。为什么?我不知道。看起来很荒谬,但我仍然必须以某种方式发送此 CSV 文件。
我已经尝试手动设置附件的 MIME 类型为 text/csv,但没有帮助。有人知道如何解决这个问题吗?
一些相关的 Google 结果:http://www.google.com/search?client=safari&rls=en&q=csv+wrapped+990&ie=UTF-8&oe=UTF-8
更新
我已经尝试像这样使用 base64 对附件进行编码:
attachments['205.csv'] = {:data=> ActiveSupport::Base64.encode64(@string), :encoding => 'base64', :mime_type => 'text/csv'}
看起来并没有产生影响。我使用 Mac 上的 Sparrow 通过 me.com 帐户收到了电子邮件。我将尝试使用 Gmail 的 Web 界面。
CSV.generate
来构建超过1000个字符的行,将生成的数据添加到ActionMailer的attachments
部分并发送它,但是无法复制你的问题。 - pjumble