I have to check the body of the email which is a html code, like the
following:
Text1:
Text2
I have to check that for “Text1” what “Text2” is shown, which can vary
for different reasons.
I managed to get the emails, to check the subject of the email to
identify the correct email, but I can’t get to resolve this problem
which I mentioned previously.
Thank you,
Erika
require ‘net/pop’
pop = Net::POP3.new('smtp server name')
pop.start('user', 'parola')
if pop.mails.empty?
puts 'No mail.'
else
i = 0
pop.each_mail do |m|
sbj=m.header.split("\r\n").grep(/^Subject:/)
rate=m.pop.grep(/^Test1/)
puts sbj
puts m.pop
i += 1
end
puts "#{pop.mails.size} mails popped."
end
pop.finish
I have to check the body of the email which is a html code, like the
following:
Text1:
Text2
I have to check that for “Text1” what “Text2” is shown, which can vary
for different reasons.
If you are already able to read the E-mail via POP3, and the body
consists of a single text/html part, then this just becomes a question
about parsing HTML. Hpricot is usually cited as the best library for
doing that. I’d say it’s not worth digging about with regexps when you
can do the job properly.
If your E-mail is a multipart/alternative then you may need a bit more
work to extract the text/html part first. The rubymail library may help
here.
If you are already able to read the E-mail via POP3, and the body
consists of a single text/html part, then this just becomes a question
about parsing HTML. Hpricot is usually cited as the best library for
doing that. I’d say it’s not worth digging about with regexps when you
can do the job properly.
Thx a lot there, but please do not underestimate regexen, especially
as they will become more powerful in 1.9.
Are you aware of dependencies of Hpricot notwithstanding that it is a
wonderful tool.
Being an old Unix guy however I feel that you do not need a full
fledged library + dependencies if a three liner
can do the job.
However if this was only an example and OP needs more parsing Hpricot
is a very sensible way to go.
Cheers
R
I tried with pop to get my inbox messages from my gmail account.but i
got “execution expired” error.plz help me.My code is
require ‘net/pop’
puts “Running Mail Importer…”
begin
if Net::POP3.start(“pop.gmail.com”, nil, “gmailaccount”,
“gmailpassword”)
Net::POP3.start(“pop.gmail.com”, nil, “gmailaccount”, “gmailpassword”)
do |pop|
puts “After…”
if pop.mails.empty?
puts “NO MAIL”
else
pop.mails.each do |email|
begin
puts “receiving mail…”
Notifier.receive(email.pop)
email.delete
rescue Exception => e
puts "Error receiving email at " + Time.now.to_s + "::: " +
e.message
end
end
end
end
else
puts “Not Connecting…”
end
rescue Exception => e
puts e
end
I tried using Hpricot in the following way:
…
Connect with POP3 and get the email
…
email = TMail::Mail.parse(m.pop)
body2=Hpricot(email.body)
elements = body2.search(“/html/body/table//td”).collect{|k|
k.inner_html.split(‘,’) unless k.inner_html =~ /</ }.flatten.compact
puts elements
…
Is there any better way to extract the info?
My html email looks like something like this:
Info1
Info2
Info1
Info2
Info1
Info2
Info1
Info2
Info1
Info2
Info1
Info2
So the general rule is that i have 3 tables and I need to check that for
Info1 the correct Info2 is shown. Every Info1 / Info2 can vary.
Is there a better way to have in to arrays for example Info1 and Info2.
Because my solution is ok, only I subtract all the info from the html
code which I need to parse one more time.
Thanks,
Erika
From: Robert D. [email protected]
To: ruby-talk ML [email protected]
Sent: Tuesday, December 9, 2008 11:02:39 PM
Subject: Re: pop3 body email
If you are already able to read the E-mail via POP3, and the body
consists of a single text/html part, then this just becomes a question
about parsing HTML. Hpricot is usually cited as the best library for
doing that. I’d say it’s not worth digging about with regexps when you
can do the job properly.
Thx a lot there, but please do not underestimate regexen, especially
as they will become more powerful in 1.9.
Are you aware of dependencies of Hpricot notwithstanding that it is a
wonderful tool.
Being an old Unix guy however I feel that you do not need a full
fledged library + dependencies if a three liner
can do the job.
However if this was only an example and OP needs more parsing Hpricot
is a very sensible way to go.
Cheers
R
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.