[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Tmail + IMAP + Attachments

Dustin Webber

11/5/2008 2:37:00 AM

I am working on a script to log in to a mail server via IMAP and pull
tables of content from certain emails. All the tables are accompanied by
graphs which are quite nice.

How can I pull these attachments with Tmail, is this possible?


Here is what I have so far:

Attachments:
http://www.ruby-...attachment/2894...

--
Posted via http://www.ruby-....

3 Answers

Dustin Webber

11/5/2008 2:41:00 AM

0

Dustin Webber wrote:
> I am working on a script to log in to a mail server via IMAP and pull
> tables of content from certain emails. All the tables are accompanied by
> graphs which are quite nice.
>
> How can I pull these attachments with Tmail, is this possible?
>
>
> Here is what I have so far:


Sorry, forgot some important information.

Filetype: image/gif #=> Image format of the graphs I want to save.

I appreciate any help I can get. :)
--
Posted via http://www.ruby-....

Damjan Rems

11/5/2008 7:22:00 AM

0


Didn't tried with tmail but this is how it goes with IMAP.

imap = Net::IMAP.new('my.mail.server')
imap.login('usr', 'pwd')
imap.select('Inbox')
# all msgs
n = imap.search(["SINCE", "1-Jan-1969"])
n.each do |msgID|
msg = imap.fetch(msgID, ["ENVELOPE","UID","BODY"] )[0]
unless msg.attr["ENVELOPE"].subject.index('SOME STRING').nil?
body = msg.attr["BODY"]
i = 1
while body.parts[i] != nil
sType = body.parts[i].subtype
cName = body.parts[i].param['NAME']
i+=1
attachment = imap.fetch(msgID,
"BODY[#{i}]")[0].attr["BODY[#{i}]"]
File.open($wDir+cName,'wb+') { |f|
f.write(attachment.unpack('m')) } unless attachment.nil?
end
end
end


by
TheR


--
Posted via http://www.ruby-....

Dustin Webber

11/6/2008 8:03:00 PM

0

Damjan Rems wrote:
>
> Didn't tried with tmail but this is how it goes with IMAP.
>
> imap = Net::IMAP.new('my.mail.server')
> imap.login('usr', 'pwd')
> imap.select('Inbox')
> # all msgs
> n = imap.search(["SINCE", "1-Jan-1969"])
> n.each do |msgID|
> msg = imap.fetch(msgID, ["ENVELOPE","UID","BODY"] )[0]
> unless msg.attr["ENVELOPE"].subject.index('SOME STRING').nil?
> body = msg.attr["BODY"]
> i = 1
> while body.parts[i] != nil
> sType = body.parts[i].subtype
> cName = body.parts[i].param['NAME']
> i+=1
> attachment = imap.fetch(msgID,
> "BODY[#{i}]")[0].attr["BODY[#{i}]"]
> File.open($wDir+cName,'wb+') { |f|
> f.write(attachment.unpack('m')) } unless attachment.nil?
> end
> end
> end
>
>
> by
> TheR

Thank you that worked. Still having some problems getting it to work but
I am sure it will come to me.

Thank you again!

- Dustin
--
Posted via http://www.ruby-....