2012-04-02 25 views
0

私は特定のアドレスに送信された電子メールを受信するためにcloudmailinを使用しています。私はMail.appから添付ファイル付きの電子メールを送信するシンプルなシナリオを試しています。私のアプリケーションで投稿を受け取ったら、メールオブジェクトを作成します。Rails 3 Apple Mail.appの添付ファイル付き電子メールを読む

メールオブジェクトを作成すると、添付ファイルは空になります。

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 <[email protected]>\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: <[email protected]>\r\nTo: [email protected]\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を作成することですし、添付ファイルのサイズは、私たちはいくつかの問題があったレール3.1.3

答えて

1

を使用しています。1.

ですメールの宝石は、常に正しい添付ファイルを見つけ、ネストされた添付ファイルを見つける。最後に、各メッセージ部分を繰り返し処理し、添付ファイルを再帰的に抽出するメソッドを作成しました。 ..

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 
+0

スティーブ、病気のテストこのうち、すぐに、それがない場合はあなたに最高の答えを与える(これは我々はそれが完璧ではないかもしれませんので、使用される実際の方法ではありません警告)例えば

何あなたは言う..ありがとう –

関連する問題