Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: How to stop get_rfc822_body method of Net::IMAP::Client package to mark an unread email as read ?

by pankaj_it09 (Scribe)
on May 13, 2014 at 10:07 UTC ( [id://1085878]=note: print w/replies, xml ) Need Help??


in reply to Re: How to stop get_rfc822_body method of Net::IMAP::Client package to mark an unread email as read ?
in thread How to stop get_rfc822_body method of Net::IMAP::Client package to mark an unread email as read ?

I wrote an email to author sometime back related to some other functionality.
There is no response.
  • Comment on Re^2: How to stop get_rfc822_body method of Net::IMAP::Client package to mark an unread email as read ?

Replies are listed 'Best First'.
Re^3: How to stop get_rfc822_body method of Net::IMAP::Client package to mark an unread email as read ?
by AppleFritter (Vicar) on May 13, 2014 at 10:25 UTC

    Ah, hmm, that's unfortunate.

    Maybe try again? If the author abandoned the module, though, I have no idea what the best way to proceed would be. Perhaps there is a process for taking over CPAN modules, or some kind of BCP for how to fork them.

    Looking at the spec some more, the format of the data returned by FETCH ... RFC822 appears to be equivalent to that returned by FETCH ... BODY[] (p. 78), so a new function that did what you want might be as simple as this (note -- this'd go into Net::IMAP::Client, naturally, not your code):

    sub peek_rfc822_body { my ($self, $msg) = @_; my $wants_many = undef; if (ref($msg) eq 'ARRAY') { $msg = join(',', @$msg); $wants_many = 1; } my ($ok, $lines) = $self->_tell_imap(FETCH => "$msg BODY.PEEK[]", +1); if ($ok) { my @ret = map { $_->[1] } @$lines; return $wants_many ? \@ret : $ret[0]; } return undef; }

    But this is totally untested, and as stated above, even if it works, I've no idea what the best way of getting that into the module would be.

      The best way to get that into the module is to send a patch to the module maintainer. The last release was in January this year, which certainly doesn't feel as if the module is unmaintained.

      The ideal way to submit a patch is through RT (https://rt.cpan.org/Dist/Display.html?Name=Net-IMAP-Client) for this distribution (as for most) and also a very convenient way to inform others about your intention of change even if the original module author does not implement your change quickly (enough).

      The second best way is to send the proposed addition instead of a patch file via the same mechanism.

      I haven't looked into the test infrastructure of Net::IMAP::Client, but I figure it does not come with its own IMAP test server, so simply amending whatever tests there are for ->rfc822_body to also call ->peek_rfc822_body and expect the same results feels sensible.

      I had thought about making that change but was unsure of the syntax.

      I am modifying the package locally and using it.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1085878]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2024-04-25 17:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found