summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/feed2imap/itemtomail.rb25
1 files changed, 18 insertions, 7 deletions
diff --git a/lib/feed2imap/itemtomail.rb b/lib/feed2imap/itemtomail.rb
index 0bd7420..06efbeb 100644
--- a/lib/feed2imap/itemtomail.rb
+++ b/lib/feed2imap/itemtomail.rb
@@ -47,7 +47,7 @@ class String
end
end
-def item_to_mail(item, index, updated, from = 'Feed2Imap', include_images = false)
+def item_to_mail(item, index, updated, from = 'Feed2Imap', inline_images = false)
message = RMail::Message::new
if item.creator and item.creator != ''
if item.creator.include?('@')
@@ -87,15 +87,25 @@ def item_to_mail(item, index, updated, from = 'Feed2Imap', include_images = fals
# inline images as attachments
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)
+
htmlpart.body.gsub!(/(<img[^>]+)src="(\S+?\/([^\/]+?\.(png|gif|jpe?g)))"([^>]*>)/i) do |match|
# $2 contains url, $3 the image name, $4 the image extension
begin
- image = Base64.encode64(HTTPFetcher::fetch($2, Time.at(0)))
+ image = Base64.encode64(HTTPFetcher::fetch($2, Time.at(0)).chomp) + "\n"
cid = "#{Digest::MD5.hexdigest($2)}@feed2imap.acme.com"
imgpart = RMail::Message.new
- imgpart.header.set('Content-Type', "image/#{$4}", 'name' => $3)
- imgpart.header.set('Content-Transfer-Encoding', 'base64')
imgpart.header.set('Content-ID', "<#{cid}>")
+ type = $4
+ type = 'jpeg' if type.downcase == 'jpg' # hack hack hack
+ imgpart.header.set('Content-Type', "image/#{type}", 'name' => $3)
+ imgpart.header.set('Content-Disposition', 'attachment', 'filename' => $3)
+ imgpart.header.set('Content-Transfer-Encoding', 'base64')
imgpart.body = image
message.add_part(imgpart)
# now to specify what to replace with
@@ -107,10 +117,11 @@ def item_to_mail(item, index, updated, from = 'Feed2Imap', include_images = fals
$& # don't modify on exception
end
end
+ else
+ message.header['Content-Type'] = 'multipart/alternative'
+ message.add_part(textpart)
+ message.add_part(htmlpart)
end
-
- message.add_part(textpart)
- message.add_part(htmlpart)
return message.to_s
end
>-50/+85 2008-03-11improved performance by caching the use_expand queriesRené 'Necoro' Neumann1-5/+14 2008-03-11use catapult varsRené 'Necoro' Neumann2-4/+6 2008-03-11Updated catapult stuffRené 'Necoro' Neumann5-56/+108 2008-03-10Generate correct KeyNotFoundExceptionRené 'Necoro' Neumann1-2/+2 2008-03-09Small changesRené 'Necoro' Neumann3-1/+4 2008-03-07Better session handlingRené 'Necoro' Neumann1-5/+54 2008-03-07Small changesRené 'Necoro' Neumann1-1/+4 2008-03-07Updated shm module to 1.2René 'Necoro' Neumann1-8/+21 2008-03-07Update TODORené 'Necoro' Neumann1-3/+1 2008-03-07hmm ... yesRené 'Necoro' Neumann1-1/+1 2008-03-06Used better exceptions for configuration parserRené 'Necoro' Neumann1-26/+114 2008-03-06Update translationRené 'Necoro' Neumann2-349/+393 2008-03-06Update createpot.shRené 'Necoro' Neumann1-3/+2 2008-03-06Use 'nofork' instead of 'nolistener'René 'Necoro' Neumann1-3/+3 2008-03-05Install glade files into template dir and not data dirRené 'Necoro' Neumann2-2/+1 2008-03-05Added dependency listRené 'Necoro' Neumann3-117/+237