Forum: Ruby on Rails Getting email replies with Net::IMAP

Posted by The Ultimation (pimeamark)
on 2009-07-06 18:33
Hi, I recently made a program that retrieves emails from an inbox and
enters the body of those emails into a database using IMAP. I was just
wondering, is there any function in IMAP or other solution where I can
just get the body of the new email and exclude the quoted parts of the
previous emails? for example, currently I'm getting things like this in
my database:

Let's try this one out On Jun 30, 2009, at 11:19 AM, Mark wrote: >
Thanks for all your help bud.

^^ here i only want the "Let's try this one out" and not the text that
comes after it.


Different email providers handle quoting in different ways, so I don't
think it's as easy as looking for a certain string and deleting the text
after it. I wouldn't want to do that anyway. Is there an object in IMAP
that handles this? Just curious if anyone has similar experience.
Thanks!
Posted by Marnen Laibow-Koser (marnen)
on 2009-07-06 19:31
Mark Mr wrote:
[...]

> Different email providers handle quoting in different ways, so I don't
> think it's as easy as looking for a certain string and deleting the text
> after it. 

You just answered your own question.  There's no single standard for 
quoting text, so how could there be anything in the IMAP protocol to 
identify it?

> I wouldn't want to do that anyway. Is there an object in IMAP
> that handles this? 

Oh, wait, you mean something in the Net::IMAP library rather than the 
protocol command set?  In that case I'm not sure, but since it's easy 
enough to write a couple of regexps to handle the common cases, I'm not 
sure why you'd need it.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
Posted by The Ultimation (pimeamark)
on 2009-07-06 19:58
Marnen Laibow-Koser wrote:

> You just answered your own question.  There's no single standard for 
> quoting text, so how could there be anything in the IMAP protocol to 
> identify it?

> Oh, wait, you mean something in the Net::IMAP library rather than the 
> protocol command set?  In that case I'm not sure, but since it's easy 
> enough to write a couple of regexps to handle the common cases, I'm not 
> sure why you'd need it.


I wasn't sure if there was some way of IMAP identifying quotes within an 
email's body, but I know technology can do some crazy things so why not 
:) Just curious if anyone had done something similar and what worked for 
them. Thanks for the reply though. I'll resort to regexps if necessary.
Posted by Gabe S. (gabe_s)
on 2012-10-09 19:20
There's a Ruby gem to handle this, released by Github:

https://github.com/github/email_reply_parser

The Ultimation wrote in post #832834:
> Marnen Laibow-Koser wrote:
>
>> You just answered your own question.  There's no single standard for
>> quoting text, so how could there be anything in the IMAP protocol to
>> identify it?
>
>> Oh, wait, you mean something in the Net::IMAP library rather than the
>> protocol command set?  In that case I'm not sure, but since it's easy
>> enough to write a couple of regexps to handle the common cases, I'm not
>> sure why you'd need it.
>
>
> I wasn't sure if there was some way of IMAP identifying quotes within an
> email's body, but I know technology can do some crazy things so why not
> :) Just curious if anyone had done something similar and what worked for
> them. Thanks for the reply though. I'll resort to regexps if necessary.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.