What is the best way of extracting a key value pair from a file. For example I have an email text file which goes like so : -- Return-Path: <atharshiraz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Delivered-To: test-ovehrGOUempiNnqEydH9iw@public.gmane.org Date: Sat, 3 May 2008 18:25:13 -0400 From: "Athar Shiraz Siddiqui" <atharshiraz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> To: test-ovehrGOUempiNnqEydH9iw@public.gmane.org Subject: Testing your email checking capabilities MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline testing ... -- Now I would like to extract the usual From: and To: values from this text file. YAML seems ideal for this but the only problem is that YAML gives the following error : ArgumentError (syntax error on line 23, col -1: `To: test-ovehrGOUempiNnqEydH9iw@public.gmane.org Subject: Testing your email checking capabilities MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline testing ... ''): c:/ruby/lib/ruby/1.8/yaml.rb:133:in `load'' c:/ruby/lib/ruby/1.8/yaml.rb:133:in `load'' /app/controllers/messages_controller.rb:66:in `parseMessage''; So this is definitely a problem and I can''t use YAML. I tried regexps but I am new to them and I can only extract the entire line like so : result = /^From:.*$/.match(@emailcontent) # where @email content is the text of the email Regexp result matchdata object gets the entire From : "..." <> line including the from. I would like the value of "From:" (NOT including From: meaning I would like the email address that is after the colon). What do I use here ? In java we could do string.indexof and substring etc. Is there something comparable? I am going through the api right now and thinking of a way of removing the "from:" key from the returned line ; delete won''t work because it deletes all characters in intersection! so that wont extract the value of "From:" . I am trying gsub("From:", "") as a work around for now. but any less clunking solutions would be sweet. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
If you just need to read e-mails, you can do that without bothering with saving them to a file. The to/from fields will be easily accessible then. I ended up using an ActionMailer and the plugin linked to here: http://siannopollo.blogspot.com/2008/02/mail-fetcher-fetch-email-from-ruby-and.html You''ll need to modify that plugin a bit, however. If its what you''re looking for, let me know when you get stuck with it, and I''ll try and help out. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Dan __ wrote:> If you just need to read e-mails, you can do that without bothering with > saving them to a file. The to/from fields will be easily accessible > then. > > I ended up using an ActionMailer and the plugin linked to here: > http://siannopollo.blogspot.com/2008/02/mail-fetcher-fetch-email-from-ruby-and.html > > You''ll need to modify that plugin a bit, however. If its what you''re > looking for, let me know when you get stuck with it, and I''ll try and > help out.Precisely I just need to read emails from the inboxes folder/directory of the James Mail server. (http://james.apache.org) This however looks promising. It is an SMTP server though (not pop) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Unfortunately, I don''t know how to read emails from an SMTP server :( The plugin I sent only works with POP and IMAP. I faced this problem a little while ago (although I was using a POP server), and I still have bookmarks from when I was searching. Perhaps one of them will help you? http://wiki.rubyonrails.org/rails/pages/HowToReceiveEmailsWithActionMailer http://blog.craigambrose.com/past/2008/2/9/respond_toemail_or_how_to_handle/ http://offtheline.net/2008/2/14/receiving-email-with-rails Most of the examples use SMTP, but not the James Mail server you''re using. So I think you could use the basic idea, but you''d have to figure out the specific configurations yourself. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---