From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.90.117.16 with SMTP id p16cs368342agc; Mon, 12 Oct 2009 16:26:36 -0700 (PDT) Received: by 10.224.57.21 with SMTP id a21mr5247099qah.122.1255389995945; Mon, 12 Oct 2009 16:26:35 -0700 (PDT) Return-Path: Received: from rubyforge.org (rubyforge.org [205.234.109.19]) by mx.google.com with ESMTP id 27si4618033qyk.123.2009.10.12.16.26.35; Mon, 12 Oct 2009 16:26:35 -0700 (PDT) Received-SPF: pass (google.com: domain of sup-talk-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) client-ip=205.234.109.19; Authentication-Results: mx.google.com; spf=pass (google.com: domain of sup-talk-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) smtp.mail=sup-talk-bounces@rubyforge.org Received: from rubyforge.org (rubyforge.org [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id 8F605186006A; Mon, 12 Oct 2009 19:26:35 -0400 (EDT) Received: from kuovi.tilus.net (kuovi.tilus.net [80.68.89.168]) by rubyforge.org (Postfix) with ESMTP id AF46E18580F5 for ; Mon, 12 Oct 2009 19:22:15 -0400 (EDT) Received: by kuovi.tilus.net (Postfix, from userid 1000) id 516223FCCC; Tue, 13 Oct 2009 00:22:15 +0100 (BST) Date: Tue, 13 Oct 2009 02:22:15 +0300 From: Tero Tilus To: sup-talk@rubyforge.org Message-ID: <20091012232215.GD31940@tilus.net> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Subject: [sup-talk] RMail chokes on broken headers X-BeenThere: sup-talk@rubyforge.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: tero@tilus.net List-Id: User & developer discussion of Sup List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: sup-talk-bounces@rubyforge.org Errors-To: sup-talk-bounces@rubyforge.org RMail::Header#content_type breaks when it encounters broken Content-Type and takes sup-sync down with it /usr/lib/ruby/gems/1.8/gems/rmail-1.0.0/lib/rmail/header.rb:537:in `content_type': undefined method `downcase' for nil:NilClass (NoMethodError) from /home/terotil/src/sup/lib/sup/message.rb:439:in `message_to_chunks' from /home/terotil/src/sup/lib/sup/message.rb:239:in `load_from_source!' from /home/terotil/src/sup/lib/sup/message.rb:335:in `build_from_source' from /home/terotil/src/sup/lib/sup/poll.rb:160:in `each_message_from' Worked around it this way diff --git a/lib/sup/message.rb b/lib/sup/message.rb index f9f87de..5ff3e48 100644 --- a/lib/sup/message.rb +++ b/lib/sup/message.rb @@ -436,7 +436,7 @@ private end chunks - elsif m.header.content_type && m.header.content_type.downcase == "message/rfc822" + elsif (m.header.content_type == "message/rfc822" rescue false) # rmail 1.0.0 may choke on broken content-type header, FIXME: fix rmail if m.body payload = RMail::Parser.read(m.body) from = payload.header.from.first ? payload.header.from.first.format : "" @@ -456,7 +456,7 @@ private debug "no body for message/rfc822 enclosure; skipping" [] end - elsif m.header.content_type && m.header.content_type.downcase == "application/pgp" && m.body + elsif (m.header.content_type.downcase == "application/pgp" rescue false) && m.body # rmail 1.0.0 may choke on broken content-type header, FIXME: fix rmail ## apparently some versions of Thunderbird generate encryped email that ## does not follow RFC3156, e.g. messages with X-Enigmail-Version: 0.95.0 ## they have no MIME multipart and just set the body content type to The problem itself is inside RMail. I reported it. http://rubyforge.org/tracker/index.php?func=detail&aid=27282&group_id=446&atid=1754 RMail looks abandoned. Development is pretty much stalled. No functional changes since 2004-04-27. None of the reported bugs have been fixed. Might it be worth to think about switching to another mail lib? TMail author's http://github.com/mikel/mail/ looks promising. -- Tero Tilus ## 050 3635 235 ## http://tero.tilus.net/ _______________________________________________ sup-talk mailing list sup-talk@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-talk