首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails3阅读带有苹果Mail.app附件的电子邮件

Rails3阅读带有苹果Mail.app附件的电子邮件
EN

Stack Overflow用户
提问于 2012-04-02 23:44:59
回答 1查看 395关注 0票数 0

我正在使用cloudmailin接收发送到特定地址的电子邮件。我正在尝试一个简单的场景,我从Mail.app发送一封带有附件的电子邮件。当我在我的应用程序中收到帖子时,我创建了一个邮件对象。

当我创建邮件对象时,附件是空的。

代码语言:javascript
复制
mail_str = 
"Received: (qmail 16453 invoked from network); 2 Apr 2012 14:27:29 -0000\r\nReceived: from unknown (71.170.102.226)\r\n  by smtpauth20.prod.mesa1.secureserver.net (64.202.165.36) with ESMTP; 02 Apr 2012 14:27:29 -0000\r\nFrom: Jake Dempsey <jake@direct2mfg.com>\r\nContent-Type: multipart/mixed; boundary=\"Apple-Mail=_8E1F0992-1DAA-409B-BC73-74747FFDFA98\"\r\nSubject: inv\r\nDate: Mon, 2 Apr 2012 09:27:28 -0500\r\nMessage-Id: <EB899F47-7E1F-4853-AE17-17290BF7B4F8@direct2mfg.com>\r\nTo: 4511bea79e86da90d6d2@cloudmailin.net\r\nMime-Version: 1.0 (Apple Message framework v1257)\r\nX-Mailer: Apple Mail (2.1257)\r\n\r\n\r\n--Apple-Mail=_8E1F0992-1DAA-409B-BC73-74747FFDFA98\r\nContent-Disposition: attachment;\r\nfilename=test.csv\r\nContent-Type: text/csv;\r\nname=\"test.csv\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nRemove Itesm,Item ID,Short Desc,Long Desc,Segment,Item =\r\nClass,Cost,MSRP,Stock UOM, Unit Vol,Unit Weight,Unit Height,Unit =\r\nLength,Unit Width=0Dno,1, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,2, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,3, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,4, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,5, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,6, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,7, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0Dno,8, super short, super long long, Casual, =\r\nCasual,1,3,Each, , , , , =0D=\r\n\r\n--Apple-Mail=_8E1F0992-1DAA-409B-BC73-74747FFDFA98--\r\n"

mail_obj = Mail.new mail_str
puts mail_obj.attachments.size #should be 1

如果我通过其他客户端发送电子邮件,我可以创建一个mail_obj,附件大小为1。

我使用的是rails 3.1.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 22:17:12

我们遇到了一些问题,邮件gem总是能找到正确的附件和嵌套附件。最后,我们创建了一个方法来迭代每个消息部分,并递归地提取任何附件。

例如(警告这不是我们使用的实际方法,因此它可能不完美)

代码语言:javascript
复制
def parse_attachment(mail, attachments=[])
  mail.parts.each do |part|
    if part.attachment?
      attachments << part
    else
      if part.parts && part.parts.length > 0
        parse_attachment(part, attachments)
      end
    end
  end
  return attachments
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9979449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档