Courie...nvelope(3pm)

πŸ“¦
version 0.200 Β· 2 versions
, in debian bookworm, debian trixie

✨ NAME ✨

ok so bestie, welcome to Courier::Filter::Module::Envelope β€” it's a message envelope filter module for the Courier::Filter framework πŸŽ€ and it's literally here to vibe-check your mail's envelope πŸ‘‘


🌸 SYNOPSIS 🌸

use Courier::Filter::Module::Envelope;

my $module = Courier::Filter::Module::Envelope->new(
    fields      => {
        # One or more of the following fields:
        sender              => 'paul.greenfield@unisys.com',
        recipient           => 'julian@mehnle.net',
        remote_host         => '216.250.130.2',
        remote_host_name    => qr/(^|\.)php\.net$/,
        remote_host_helo    => qr/^[^.]*$/
    },

    # Optionally the following:
    response    => $response_text,

    logger      => $logger,
    inverse     => 0,
    trusting    => 0,
    testing     => 0,
    debugging   => 0
);

my $filter = Courier::Filter->new(
    ...
    modules     => [ $module ],
    ...
);

πŸ’« DESCRIPTION πŸ’«

This class is a filter module class for use with Courier::Filter. The way it works is so simple: it matches a message whenever any one of that message's envelope fields matches the criteria you set up. That's it. That's the whole vibe. ✨

πŸ¦‹ Constructor πŸ¦‹

Here's the constructor, bestie:

new(%options) : returns Courier::Filter::Module::Envelope

Creates a new Envelope filter module. Fresh out the box, slay πŸ’…

%options is a list of key/value pairs representing any of the following options:

  • fields β€” Required, no skipping this one. A reference to a hash containing the message envelope field names and patterns (as key/value pairs) that messages are to be matched against. Field names are matched case-insensitively (super chill about capitalisation, we love that). Patterns may either be simple strings (for exact, case-sensitive matches) or regular expression objects created by the qr// operator (for inexact, partial matches).

The following envelope fields are supported:

  • sender β€” The message's envelope sender (from the MAIL FROM SMTP command).
  • recipient β€” Any of the message's envelope recipients (from the RCPT TO SMTP commands).
  • remote_host β€” The IP address of the SMTP client that submitted the message.
  • remote_host_name β€” The host name (gained by Courier through a DNS reverse lookup) of the SMTP client that submitted the message, if available.
  • remote_host_helo β€” The HELO string that the SMTP client specified, if available.

So for instance, to match any message with a sender of paul.greenfield@unisys.com, directed at julian@mehnle.net (possibly among other recipients), you could set the fields option as follows:

fields      => {
    sender      => 'paul.greenfield@unisys.com',
    recipient   => 'julian@mehnle.net'
}
  • response β€” A string that is to be returned literally as the match result in case of a match. Defaults to "Prohibited <field>: <value>". cute default, honestly πŸŽ€

All options of the Courier::Filter::Module constructor are also supported. Please see "new()" in Courier::Filter::Module for their descriptions πŸ‘€

🌈 Instance methods 🌈

See "Instance methods" in Courier::Filter::Module for a description of the provided instance methods. Go peek, iykyk πŸ’–


🫢 SEE ALSO 🫢

  • Courier::Filter::Module::Header
  • Courier::Filter::Module
  • Courier::Filter::Overview

For AVAILABILITY, SUPPORT, and LICENSE information, see Courier::Filter::Overview. Yes bestie, all of it lives over there 🧚


πŸ‘‘ AUTHOR πŸ‘‘

Julian Mehnle <julian@mehnle.net> β€” iconic, we stan πŸ’œ


ok that's the whole page, periodt πŸ’… this lil masterpiece is perl v5.34.0, dated 2022-10-21, and it ships under the Courie...nvelope(3pm) manual β€” go forth and filter, main character 🌟

πŸ“¦ where this page comes from