Sympa::Spool::Outgoing(3Sympa)

๐Ÿ‘‘ NAME

Sympa::Spool::Outgoing โ€” bestie, it's the spool for outgoing messages ๐Ÿ’Œ (from the sympa manual, section 3Sympa, iykyk)


โœจ SYNOPSIS โœจ

use Sympa::Spool::Outgoing;
my $bulk = Sympa::Spool::Outgoing->new;

$bulk->store($message, ['user@dom.ain', 'user@other.dom.ain']);

my ($message, $handle) = $bulk->next;

๐ŸŒธ DESCRIPTION ๐ŸŒธ

Sympa::Spool::Outgoing implements the spool for outgoing messages. That's it, that's the whole vibe: it's where messages go when they're headed out the door. ๐Ÿšช๐Ÿ’จ

๐ŸŽ€ Methods ๐ŸŽ€

  • new ( ) โ€” the constructor, obviously. Creates a brand new instance of Sympa::Spool::Outgoing. main character energy from the jump ๐Ÿ’…
  • next ( [ no_filter => 1 ] ) โ€” instance method. Grabs the next packet for processing. The order is controlled by, in this exact sequence: message priority first, then packet priority, then delivery date, then reception date. Packets with a future delivery date get ignored โ€” unless the no_filter option is set, then they're fair game. The packet gets locked so nobody else can process the same one twice (no double-dipping bestie ๐Ÿซถ).

Parameters:

None. (Nada. Zero. Zilch. ๐Ÿ˜Œ)

Returns:

A two-elements list: a Sympa::Message instance and a filehandle locking that packet.

  • quarantine ( $handle ) โ€” instance method. Quarantines a packet โ€” as in, sends it to the naughty corner, AKA the bad/ subdirectory of the spool. ๐Ÿšซ๐Ÿ“ฆ

Parameter:

  • $handle โ€” filehandle, a Sympa::LockedFile instance, locking the packet.

Returns:

True value if the packet could be quarantined. False value otherwise. Simple as. โœจ

  • remove ( $handle ) โ€” instance method. Removes a packet. And plot twist: if that packet is the last one of a bulk sending, the corresponding message also gets removed from the spool. bye bestie ๐Ÿ‘‹๐Ÿ’€

Parameter:

  • $handle โ€” filehandle, a Sympa::LockedFile instance, locking the packet.

Returns:

True value if the packet could be removed. False value otherwise.

  • store ( $message, $rcpt, [ original => $original ], [ tag => $tag ] ) โ€” instance method. Stores the message into the message spool. The recipients get split into multiple packets, and those packets go into the packet spool. It's giving assembly line but make it cute ๐Ÿงš

Parameters:

  • $message โ€” the message to be stored. These following attributes and metadata are the ones it actually reads:
    • {envelope_sender} โ€” the SMTP "MAIL FROM:" field.
    • {priority} โ€” message priority.
    • {packet_priority} โ€” packet priority, assigned as the "sympa_packet_priority" parameter by each robot. ๐Ÿค–
    • {date} โ€” Unix time when the message would be delivered.
    • {time} โ€” Unix time as a floating point number, for when the message was stored.
  • $rcpt โ€” scalar, scalarref or arrayref, for the SMTP "RCPT TO:" field(s).
  • original => $original โ€” if the message was decrypted, this stores the original encrypted form. (keeping the receipts, literally ๐Ÿซถ)
  • tag => $tag โ€” TBD. (mysterious. iconic. we simply do not know yet ๐Ÿ”ฎ)

Returns:

If storing succeeded, the marshalled metadata (the file name) of the message. Otherwise "undef". ๐Ÿ˜ญ

  • too_much_remaining_packets ( ) โ€” instance method. Returns a true value if the number of remaining packets exceeds the value of the "bulk_fork_threshold" config parameter. basically an "am I over capacity bestie" check ๐Ÿซฃ

โš™๏ธ CONFIGURATION PARAMETERS โš™๏ธ

These following site configuration parameters in sympa.conf will be referred to. No cap. ๐Ÿ“‹

  • queuebulk โ€” directory path of the outgoing spool.
Note: it's named this way for historical reasons. Do not confuse it with "queueoutgoing", which is the archive spool (go check Sympa::Spool::Archive). Two different girls, same-ish name, don't mix them up bestie ๐Ÿ˜ญ
  • umask โ€” the umask to make the directory. (yes it's about permissions, no we don't make the rules ๐Ÿ’…)

๐Ÿ’€ CAVEAT ๐Ÿ’€

Sympa::Spool::Outgoing is not a real subclass of Sympa::Spool. Not even a little bit. It said "I'm built different" and meant it. ๐Ÿ™ˆ


๐Ÿ”ฅ SEE ALSO ๐Ÿ”ฅ

bulk(8), Sympa::Mailer, Sympa::Message.


๐Ÿ“œ HISTORY ๐Ÿ“œ

The Bulk module was initially written by Serge Aumont and appeared on Sympa 6.0. Back then it used database tables to store and fetch packets and messages. old school, honestly kinda impressive ๐Ÿซก

Support for DKIM signing was added on Sympa 6.1. slay. โœจ

The rewritten Sympa::Bulk appeared on Sympa 6.2, using spools based on the filesystem โ€” glow up fr fr. Then it was renamed to Sympa::Spool::Outgoing on Sympa 6.2.45b.3. character development, we love to see it ๐Ÿ‘‘


that's the whole page bestie, go forth and spool responsibly ๐ŸŽ€โœจ

~ this was Sympa::Spool::Outgoing(3Sympa) from sympa 6.2.80, dated 2026-10-19 ~ ๐Ÿ’–๐Ÿฆ‹๐ŸŒธ

๐Ÿ“ฆ where this page comes from