From 8d4be556a2d49d28506665a820ed6bc166dbdc0d Mon Sep 17 00:00:00 2001 From: Lucas Nussbaum Date: Wed, 6 May 2009 14:55:35 +0200 Subject: use multipart/related only if there are images ... and only use multipart/alternative in the other case. --- lib/feed2imap/itemtomail.rb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'lib/feed2imap/itemtomail.rb') diff --git a/lib/feed2imap/itemtomail.rb b/lib/feed2imap/itemtomail.rb index ffa6b22..0f97ac0 100644 --- a/lib/feed2imap/itemtomail.rb +++ b/lib/feed2imap/itemtomail.rb @@ -87,14 +87,8 @@ def item_to_mail(item, id, updated, from = 'Feed2Imap', inline_images = false, w htmlpart.body = item.to_html # inline images as attachments + imgs = [] if inline_images - message.header.set('Content-Type', 'multipart/related', 'type'=> 'multipart/alternative') - texthtml = RMail::Message::new - texthtml.header.set('Content-Type', 'multipart/alternative') - texthtml.add_part(textpart) - texthtml.add_part(htmlpart) - message.add_part(texthtml) - cids = [] htmlpart.body.gsub!(/(]+)src="(\S+?\/([^\/]+?\.(png|gif|jpe?g)))"([^>]*>)/i) do |match| # $2 contains url, $3 the image name, $4 the image extension @@ -111,7 +105,7 @@ def item_to_mail(item, id, updated, from = 'Feed2Imap', inline_images = false, w imgpart.header.set('Content-Disposition', 'attachment', 'filename' => $3) imgpart.header.set('Content-Transfer-Encoding', 'base64') imgpart.body = image - message.add_part(imgpart) + imgs << imgpart end # now to specify what to replace with newtag = "#{$1}src=\"cid:#{cid}\"#{$5}" @@ -122,6 +116,17 @@ def item_to_mail(item, id, updated, from = 'Feed2Imap', inline_images = false, w $& # don't modify on exception end end + end + if imgs.length > 0 + message.header.set('Content-Type', 'multipart/related', 'type'=> 'multipart/alternative') + texthtml = RMail::Message::new + texthtml.header.set('Content-Type', 'multipart/alternative') + texthtml.add_part(textpart) + texthtml.add_part(htmlpart) + message.add_part(texthtml) + imgs.each do |i| + message.add_part(i) + end else message.header['Content-Type'] = 'multipart/alternative' message.add_part(textpart) -- cgit v1.2.3-70-g09d2