Mail::T...Receive(3)

πŸ’Œ NAME

Mail::Transport::Receive β€” bestie, this is the module that receives messages. That's the whole job. Getting mail in. πŸ’–


🌸 INHERITANCE

The family tree, okay, stay with me:

Mail::Transport::Receive
  is a Mail::Transport
  is a Mail::Reporter

Mail::Transport::Receive is extended by
  Mail::Transport::IMAP4
  Mail::Transport::POP3

So it's a Mail::Transport, which is a Mail::Reporter, and then Mail::Transport::IMAP4 and Mail::Transport::POP3 both extend it. Main character energy, honestly. πŸ‘‘


✨ SYNOPSIS

The vibe check, in code:

my $receiver = Mail::Transport::POP3->new(...);
my $message = $receiver->receive($id);

πŸ¦‹ DESCRIPTION

Okay so every object that extends Mail::Transport::Receive implements a protocol that can get messages into your application. That's the assignment. πŸ“₯

But heads up β€” the internals of each implementation can differ quite a lot, so you should lowkey also go read each separate manual page. Don't just assume they all behave the same, because they do not, and that's on purpose.

Current message receivers, the list:

  • Mail::Transport::POP3 β€” implements the POP3 protocol. See also Mail::Box::POP3. πŸ“

Extends "DESCRIPTION" in Mail::Transport.


πŸ’… METHODS

Extends "METHODS" in Mail::Transport.

πŸŽ€ Constructors

Extends "Constructors" in Mail::Transport.

  • $class->new(%options) β€” inherited, so go look at "METHODS" in Mail::Transport. It's not doing anything new here, it's just vibing off its parent. πŸ™ˆ

🌈 Attributes

Extends "Attributes" in Mail::Transport.

(Yeah bestie, that's genuinely it for this section. Nothing new, no notes.)

πŸ“¨ Receiving mail

  • $obj->receive( [$unique_message_id] ) β€” grabs one message from the remote server. Here's the thing though: some receivers just hand you the next message automatically, while others are random access and will use the ID you specified. So whether you pass $unique_message_id actually matters depends on who you're talking to. πŸ‘€

πŸ”Œ Server connection

Extends "Server connection" in Mail::Transport.

  • $obj->findBinary( $name, [@directories] ) β€” inherited, see "Server connection" in Mail::Transport.
  • $obj->remoteHost() β€” inherited, see "Server connection" in Mail::Transport.
  • $obj->retry() β€” inherited, see "Server connection" in Mail::Transport.

πŸ’€ Error handling

Extends "Error handling" in Mail::Transport.

  • $obj->AUTOLOAD() β€” inherited, see "Error handling" in Mail::Reporter.
  • $obj->notImplemented() β€” inherited, see "Error handling" in Mail::Reporter.

🧚 Cleanup

Extends "Cleanup" in Mail::Transport.

  • $obj->DESTROY() β€” inherited, see "Cleanup" in Mail::Reporter. It's the goodbye method. RIP to the object but it's fine, it's inherited so nobody's writing new code for it here. ⭐

🩺 DIAGNOSTICS

These are the messages you might get yelled at with. Read them, fr fr.

  • Error: Avoid program abuse: specify an absolute path for $program. β€” If you're specifying explicit locations for executables of email transfer agents, you gotta use absolute file names. Only absolute. This avoids various pontential security problems, and no we are not being dramatic about that. Cast by new(). 🚨
  • Error: Executable $program does not exist. β€” The explicitly indicated mail transfer agent does not exists. The normal settings are used to find the correct location. Cast by new().
  • Error: class $package does not implement method $method. β€” Fatal error: the specific $package (or one of its superclasses) does not implement this method where it should. What this actually means is that some other related classes do implement this method, but the class you're holding does not. So probably you should investigate this and probably inform the author of the package. Cast by notImplemented(). πŸ’€
Okay bestie, real talk: two of those descriptions have little grammar wobbles in the source (pontential, does not exists). We kept them exactly as-is because facts stay facts and we do not silently "fix" the original text. πŸ’–

πŸ”₯ SEE ALSO

This module is part of Mail-Transport version 4.01, built on December 13, 2025. Website: http://perl.overmeer.net/CPAN/


πŸ‘‘ LICENSE

For contributors see file ChangeLog.

This software is copyright (c) 2001-2025 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


And that's a wrap, bestie! ✨ This page came to you as part of the User Contributed Perl Documentation, generated by perl v5.42.0 on 2026-01-17, and yes it's literally called Mail::T...Receive(3) because the header got truncated. Slay. πŸ’…πŸ«Ά

πŸ“¦ where this page comes from